English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Конфигурация 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"
 "/var/run/redis.pid"
 "maxmemory"
 "0"
 "maxmemory-samples"
 "3"
 "timeout"
 "0"
 "tcp-keepalive"
 "0"
 "auto-aof-rewrite-percentage"
 "100"
 "auto-aof-rewrite-min-size"
 "67108864"
 "hash-max-ziplist-entries"
 "512"
 "hash-max-ziplist-value"
 "64"
 "list-max-ziplist-entries"
 "512"
 "list-max-ziplist-value"
 "64"
 "set-max-intset-entries"
 "512"
 "zset-max-ziplist-entries"
 "128"
 "zset-max-ziplist-value"
 "64"
 "hll-sparse-max-bytes"
 "3000"
 "lua-time-limit"
 "5000"
 "slowlog-log-slower-than"
 "10000"
 "latency-monitor-threshold"
 "0"
 "slowlog-max-len"
 "128"
 "port"
 "6379"
 "tcp-backlog"
 "511"
 "databases"
 "16"
 "repl-ping-slave-period"
 "10"
 "repl-timeout"
 "60"
 "repl-backlog-size"
 "1048576"
 "repl-backlog-ttl"
 "3600"
 "maxclients"
 "4064"
 "watchdog-period"
 "0"
 "slave-priority"
 "100"
 "min-slaves-to-write"
 "0"
 "min-slaves-max-lag"
 "10"
 "hz"
 "10"
 "no-appendfsync-on-rewrite"
 "no"
 "slave-serve-stale-data"
 "yes"
 "slave-read-only"
 "yes"
 "stop-writes-on-bgsave-error"
 "yes"
 "daemonize"
 "no"
 "rdbcompression"
 "yes"
 "rdbchecksum"
 "yes"
 "activerehashing"
 "yes"
 "repl-disable-tcp-nodelay"
 "no"
 "aof-rewrite-incremental-fsync"
 "yes"
 "appendonly"
 "no"
 "dir"
 "/home/deepak/Downloads/redis-2.8.13/src"
 "maxmemory-policy"
"volatile-lru"
"appendfsync"
"everysec"
"save"
"3600 1 300 100 60 10000"
"loglevel"
"notice"
"client-output-buffer-limit"
"normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
"unixsocketperm"
"0"
"slaveof"
""
"notify-keyspace-events"
""
"bind"
""

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

можно изменить файл 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

Это означает, что за 900 секунд (15 минут) было 1 изменение, за 300 секунд (5 минут) было 10 изменений и за 60 секунд было 10000 изменений.

Укажите, через какое время и сколько обновлений данных следует синхронизировать с файлом данных, можно использовать несколько условий вместе
10
rdbcompression yes
Укажите, необходимо ли сжимать данные при хранении в локальной базе данных, по умолчанию yes, Redis использует压缩 LZF, если нужно сэкономить время процессора, можно отключить этот параметр, но это приведет к тому, что файл базы данных станет очень большим
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 будет хранить ключи в памяти, а значения будут храниться в области swap
18
appendonly no
Указать, следует ли производить запись в журнал после каждого обновления операции, Redis по умолчанию асинхронно записывает данные на диск, если это не включено, может привести к потере данных в случае отключения питания в течение определенного периода времени. Поскольку данныеRedis синхронизируются по условиям save, некоторые данные могут существовать только в памяти в течение определенного периода времени. Значение по умолчания 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 swap файл разбит на множество страниц, один объект может храниться на нескольких страницах, но страница не может быть совместно использована несколькими объектами, размер vm-page-size должен быть установлен в зависимости от размера хранимых данных, автор рекомендует, если хранить много малых объектов, размер страницы最好设置为 32 или 64 байт; если хранить очень большие объекты, можно использовать больше страниц, если не уверен, используйте значение по умолчанию
25
vm-pages 134217728
Установить количество страниц в swap-файле, так как таблица страниц (вид bitmap, который показывает, заняты ли страницы или свободны) хранится в памяти, на диске каждые 8 страниц consume 1byte памяти.
26
vm-max-threads 4
Установить количество потоков, доступных для доступа к swap-файлу, лучше не превышать количество ядер процессора, если установлено 0, то все операции с swap-файлом будут выполняться последовательно, что может привести к значительным задержкам. По умолчанию 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 на одном и том же хосте, при этом каждый пример имеет свои собственные специфические конфигурационные файлы