Конфигурация Redis

Файл конфигурации Redis находится в каталоге установки Redis, имя файлаredis.conf(в Windows называется redis.windows.conf).

Вы можете использоватьCONFIGкоманду для просмотра или установки параметров конфигурации.


Синтаксис

Формат команды Redis CONFIG следующий:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

Пример

redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

Используйте*чтобы получить все параметры конфигурации:

Пример

redis 127.0.0.1:6379> CONFIG GET *

  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis.pid"
 13) "maxmemory"
 14) "0"
 15) "maxmemory-samples"
 16) "3"
 17) "timeout"
 18) "0"
 19) "tcp-keepalive"
 20) "0"
 21) "auto-aof-rewrite-percentage"
 22) "100"
 23) "auto-aof-rewrite-min-size"
 24) "67108864"
 25) "hash-max-ziplist-entries"
 26) "512"
 27) "hash-max-ziplist-value"
 28) "64"
 29) "list-max-ziplist-entries"
 30) "512"
 31) "list-max-ziplist-value"
 32) "64"
 33) "set-max-intset-entries"
 34) "512"
 35) "zset-max-ziplist-entries"
 36) "128"
 37) "zset-max-ziplist-value"
 38) "64"
 39) "hll-sparse-max-bytes"
 40) "3000"
 41) "lua-time-limit"
 42) "5000"
 43) "slowlog-log-slower-than"
 44) "10000"
 45) "latency-monitor-threshold"
 46) "0"
 47) "slowlog-max-len"
 48) "128"
 49) "port"
 50) "6379"
 51) "tcp-backlog"
 52) "511"
 53) "databases"
 54) "16"
 55) "repl-ping-slave-period"
 56) "10"
 57) "repl-timeout"
 58) "60"
 59) "repl-backlog-size"
 60) "1048576"
 61) "repl-backlog-ttl"
 62) "3600"
 63) "maxclients"
 64) "4064"
 65) "watchdog-period"
 66) "0"
 67) "slave-priority"
 68) "100"
 69) "min-slaves-to-write"
 70) "0"
 71) "min-slaves-max-lag"
 72) "10"
 73) "hz"
 74) "10"
 75) "no-appendfsync-on-rewrite"
 76) "no"
 77) "slave-serve-stale-data"
 78) "yes"
 79) "slave-read-only"
 80) "yes"
 81) "stop-writes-on-bgsave-error"
 82) "yes"
 83) "daemonize"
 84) "no"
 85) "rdbcompression"
 86) "yes"
 87) "rdbchecksum"
 88) "yes"
 89) "activerehashing"
 90) "yes"
 91) "repl-disable-tcp-nodelay"
 92) "no"
 93) "aof-rewrite-incremental-fsync"
 94) "yes"
 95) "appendonly"
 96) "no"
 97) "dir"
 98) "/home/deepak/Downloads/redis-2.8.13/src"
 99) "maxmemory-policy"
100) "volatile-lru"
101) "appendfsync"
102) "everysec"
103) "save"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client-output-buffer-limit"
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "slaveof"
112) ""
113) "notify-keyspace-events"
114) ""
115) "bind"
116) ""

Редактирование конфигурации

Вы можете изменить конфигурацию, отредактировав файл redis.conf или используяCONFIG setкоманду для изменения конфигурации.

Синтаксис

CONFIG SETБазовый синтаксис команды:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Пример

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

Описание параметра

Параметры конфигурации redis.conf описаны ниже:

Порядковый номерЭлемент конфигурацииОписание
1
daemonize no
По умолчанию Redis не работает как демон. Вы можете изменить этот параметр конфигурации и использовать yes, чтобы включить режим демона (Windows не поддерживает демон-потоки; в конфигурации — no).
2
pidfile /var/run/redis.pid
Когда Redis работает как демон, Redis по умолчанию записывает pid в файл /var/run/redis.pid. Вы можете указать его через pidfile.
3
port 6379
Укажите порт прослушивания Redis. Порт по умолчанию — 6379. Автор объяснил в одном из своих постов в блоге, почему в качестве порта по умолчанию был выбран 6379: 6379 соответствует MERZ на клавиатуре телефона, а MERZ взято из имени итальянской певицы Alessia Merz.
4
bind 127.0.0.1
Адрес хоста для привязки
5
timeout 300
Закрывать соединение после того, как клиент бездействует в течение указанного числа секунд. Если установлено 0, эта функция отключена.
6
loglevel notice
Укажите уровень логирования. Redis поддерживает всего четыре уровня: debug, verbose, notice, warning. По умолчанию — notice.
7
logfile stdout
Способ ведения журнала по умолчанию — стандартный вывод. Если Redis настроен на работу в качестве демона, и способ ведения журнала здесь также настроен как стандартный вывод, логи будут отправляться в /dev/null.
8
databases 16
Задайте количество баз данных. База данных по умолчанию — 0. Вы можете использовать SELECTкоманду для указания id базы данных при подключении.
9
save <seconds> <changes>

Файл конфигурации Redis по умолчанию предоставляет три условия:

save 900 1

save 300 10

save 60 10000

Они означают соответственно 1 изменение за 900 секунд (15 минут), 10 изменений за 300 секунд (5 минут) и 10000 изменений за 60 секунд.

Укажите, сколько операций обновления за определённый период вызовут синхронизацию данных с файлом данных. Можно комбинировать несколько условий.
10
rdbcompression yes
Укажите, сжимать ли данные при сохранении в локальную базу данных. По умолчанию — да. Redis использует сжатие LZF. Чтобы сэкономить время CPU, можно отключить эту опцию, но это приведёт к огромному размеру файла базы данных.
11
dbfilename dump.rdb
Укажите имя файла локальной базы данных. Значение по умолчанию — dump.rdb.
12
dir ./
Укажите каталог, в котором хранится локальная база данных.
13
slaveof <masterip> <masterport>
Когда этот компьютер является ведомым сервисом, задайте IP-адрес и порт главного сервиса. При запуске Redis автоматически синхронизирует данные с главного сервиса.
14
masterauth <master-password>
Когда в главном сервисе включена защита паролем, это пароль для подключения ведомого сервиса к главному.
15
requirepass foobared
Задайте пароль подключения к Redis. Если пароль подключения настроен, клиент должен предоставить пароль с помощью команды AUTH <password> при подключении к Redis. По умолчанию отключено.
16
 maxclients 128
Задайте максимальное количество одновременных клиентских подключений. По умолчанию ограничений нет. Количество клиентских подключений, которые Redis может открыть одновременно, равно максимальному количеству файловых дескрипторов, которые может открыть процесс Redis. Если для maxclients задано значение 0, это означает отсутствие ограничений. Когда количество клиентских подключений достигает предела, Redis закрывает новые подключения и возвращает клиенту сообщение об ошибке "max number of clients reached".
17
maxmemory <bytes>
Укажите максимальный лимит памяти для Redis. Redis загружает данные в память при запуске. После достижения максимального объёма памяти Redis сначала пытается удалить просроченные или почти просроченные ключи. Когда этот способ обработки выполнен, если максимальное значение памяти всё ещё достигнуто, операции записи больше не могут выполняться, но операции чтения по-прежнему возможны. Новый механизм vm в Redis хранит ключи в памяти, а значения — в области подкачки.
18
appendonly no
Укажите, следует ли выполнять журналирование после каждой операции обновления. По умолчанию Redis записывает данные на диск асинхронно. Если это не включено, сбой питания может привести к потере данных за некоторый период времени. Поскольку сам Redis синхронизирует файлы данных в соответствии с условиями сохранения выше, некоторые данные могут существовать только в памяти в течение некоторого времени. По умолчанию — no.
19
appendfilename appendonly.aof
Укажите имя файла журнала обновлений. По умолчанию — appendonly.aof.
20
appendfsync everysec

Укажите условие журнала обновлений. Есть 3 возможных значения:

  • no: Означает ожидание синхронизации кэша данных с диском операционной системой (быстро).
  • always: Означает ручной вызов fsync() после каждой операции обновления для записи данных на диск (медленно, безопасно).
  • everysec: Означает синхронизацию раз в секунду (компромисс, значение по умолчанию).
21
vm-enabled no
Укажите, следует ли включать механизм виртуальной памяти. Значение по умолчанию — no. Кратко: механизм VM хранит данные страницами. Redis выгружает на диск страницы с меньшим доступом, то есть холодные данные. Страницы с большим доступом автоматически подгружаются с диска в память (я подробно разберу механизм VM Redis в отдельной статье позже).
22
vm-swap-file /tmp/redis.swap
Путь к файлу виртуальной памяти. Значение по умолчанию — /tmp/redis.swap. Он не может совместно использоваться несколькими экземплярами Redis.
23
vm-max-memory 0
Хранить все данные, размер которых превышает vm-max-memory, в виртуальной памяти. Независимо от того, насколько маленьким задано vm-max-memory, все индексные данные хранятся в памяти (индексные данные Redis — это ключи). То есть когда vm-max-memory установлено в 0, фактически все значения существуют на диске. Значение по умолчанию — 0.
24
vm-page-size 32
Файл подкачки Redis разделён на множество страниц. Объект может храниться на нескольких страницах, но страница не может использоваться совместно несколькими объектами. vm-page-size следует задавать в соответствии с размером хранимых данных. Автор рекомендует: если вы храните много маленьких объектов, размер страницы лучше всего установить равным 32 или 64 байтам; если вы храните очень большие объекты, можно использовать страницу большего размера; если вы не уверены, используйте значение по умолчанию.
25
vm-pages 134217728
Задает количество страниц в файле подкачки. Поскольку таблица страниц (битовая карта, указывающая, свободны страницы или используются) хранится в памяти, каждые 8 страниц на диске будут потреблять 1 байт памяти.
26
vm-max-threads 4
Задает количество потоков, обращающихся к файлу подкачки. Лучше не превышать число ядер машины. Если установить 0, все операции с файлом подкачки выполняются последовательно, что может вызвать относительно длительную задержку. Значение по умолчанию — 4.
27
glueoutputbuf yes
Задает, объединять ли меньшие пакеты в один пакет при ответе клиентам. По умолчанию включено.
28
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
Указывает, что при превышении некоторого количества или превышении максимальным элементом определенного порога используется специальный хеш-алгоритм.
29
activerehashing yes
Указывает, активировать ли перехеширование. По умолчанию включено (подробности будут представлены позже при описании хеш-алгоритма Redis).
30
include /path/to/local.conf
Указывает на включение других файлов конфигурации. Вы можете использовать один и тот же файл конфигурации для нескольких экземпляров Redis на одном хосте, при этом каждый экземпляр также имеет свой собственный файл конфигурации.
Другие расширения