Конфигурация 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 |
| 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 возможных значения:
|
| 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 на одном хосте, при этом каждый экземпляр также имеет свой собственный файл конфигурации. |