---
title: 'Политики вытеснения Redis'
sidebar_label: 'Политики вытеснения'
sidebar_position: 4
description: 'Список политик вытеснения Redis и как изменить политику'
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import {TabItemLabel} from 'docs-kit/components';
import Formbricks from '@theme/MDXComponents/Formbricks';
import {CustomTable} from 'docs-kit/components';

# Политики вытеснения Redis

Политика вытеснения — это правило, по которому Redis вытесняет ключи, чтобы освободить память, когда ее потребление достигает установленного [лимита](#key-storage-memory-limit).
Подробнее про политики вытеснения в инструкции [Key eviction](https://redis.io/docs/latest/develop/reference/eviction/) документации Redis.

Вы можете посмотреть [список политик вытеснения](#eviction-policies-list).

Политику вытеснения можно выбрать при [создании кластера](/managed-databases/redis/create-cluster.mdx) или [изменить](#edit-eviction-policy) в существующем кластере.

## Лимит памяти для хранения ключей \{#key-storage-memory-limit}

Лимит памяти для хранения ключей задан в параметре `maxmemory`.
Значение `maxmemory` по умолчанию составляет 75% от RAM на ноде кластера.
Остальные 25% обязательно зарезервированы под служебные механизмы Redis.

Вы можете изменить значение `maxmemory` только в Redis [версии](/managed-databases/redis/configurations.mdx#versions) 8:

* при [создании кластера](/managed-databases/redis/create-cluster.mdx);
* или при [изменении политики вытеснения](#edit-eviction-policy) в существующем кластере.

Изменить значение можно в диапазоне от 1% до 75%.
Если указать значение меньше 75%, остаток памяти может использоваться служебными механизмами Redis.

## Список политик вытеснения \{#eviction-policies-list}

<CustomTable>
  <table>
    <tbody>
      <tr>
        <th>noeviction</th>

        <td>
          Не вытесняет ключи при достижении лимита, указанного в `maxmemory`.
          Новые операции записи будут завершаться ошибкой из-за нехватки памяти
        </td>
      </tr>

      <tr>
        <th>volatile-lru</th>

        <td>
          Вытесняет ключи с установленным временем жизни (TTL), к которым давно не обращались.
          Ключи вытесняются по [аппроксимированному алгоритму LRU](https://redis.io/docs/latest/develop/reference/eviction/#apx-lru)
        </td>
      </tr>

      <tr>
        <th>volatile-lfu</th>

        <td>
          Вытесняет ключи с TTL, к которым обращались реже всего с момента установки TTL.
          Ключи вытесняются по [аппроксимированному алгоритму LFU](https://redis.io/docs/latest/develop/reference/eviction/#lfu-eviction)
        </td>
      </tr>

      <tr>
        <th>volatile-ttl</th>
        <td>Вытесняет ключи с наименьшим оставшимся TTL</td>
      </tr>

      <tr>
        <th>volatile-random</th>
        <td>Вытесняет случайные ключи с TTL</td>
      </tr>

      <tr>
        <th>allkeys-lru</th>

        <td>
          Вытесняет любые ключи, к которым давно не обращались.
          Ключи вытесняются по [аппроксимированному алгоритму LRU](https://redis.io/docs/latest/develop/reference/eviction/#apx-lru)
        </td>
      </tr>

      <tr>
        <th>allkeys-lfu</th>

        <td>
          Вытесняет любые ключи, к которым обращались реже всего с момента их создания.
          Ключи вытесняются по [аппроксимированному алгоритму LFU](https://redis.io/docs/latest/develop/reference/eviction/#lfu-eviction)
        </td>
      </tr>

      <tr>
        <th>allkeys-random</th>
        <td>Вытесняет любые случайные ключи</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Изменить политику вытеснения \{#edit-eviction-policy}

:::info

Мы рекомендуем изменять политику только в том случае, если вы уверены, на что это повлияет — есть возможность потери части данных.

:::

<Tabs queryString="edit-eviction-policy">
  <TabItem value="redis-6" default>
    <TabItemLabel>
      Redis 6
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
    2. В разделе **Базы данных** откройте вкладку **Активные**.
    3. Откройте страницу кластера → вкладка **Настройки**.
    4. В блоке **Политика вытеснения** нажмите **Изменить**.
    5. В поле **Maxmemory Policy** выберите политику вытеснения.
    6. Нажмите **Сохранить**.
  </TabItem>

  <TabItem value="redis-8">
    <TabItemLabel>
      Redis 8
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
    2. В разделе **Базы данных** откройте вкладку **Активные**.
    3. Откройте страницу кластера → вкладка **Настройки**.
    4. В блоке **Политика вытеснения** нажмите **Изменить**.
    5. В поле **Мaxmemory** укажите значение параметра.
       Доступные значения — от 1% до 75%.
    6. В поле **Maxmemory Policy** выберите политику вытеснения.
    7. Нажмите **Сохранить**.
  </TabItem>
</Tabs>

<Formbricks />
