Redis的配置文件
redis启动的时候依赖的配置文件
-
配置文件对单位的大小写不敏感
# Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file path as first argument: # # ./redis-server /path/to/redis.conf # Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes -
可以使用
include来包含别的文件# Include one or more other config files here. This is useful if you # have a standard template that goes to all Redis servers but also need # to customize a few per-server settings. Include files can include # other files, so use this wisely. # # Notice option "include" won't be rewritten by command "CONFIG REWRITE" # from admin or Redis Sentinel. Since Redis always uses the last processed # line as value of a configuration directive, you'd better put includes # at the beginning of this file to avoid overwriting config change at runtime. # # If instead you are interested in using includes to override configuration # options, it is better to use include as the last line. # # include /path/to/local.conf # include /path/to/other.conf -
网络模块
bind:可以使用通配符或者自己的公网ip来使我们的redis服务能够公开protected-mode:是否开始保护模式port:绑定的端口 -
通用的配置
daemobize:是否开启守护进程,默认是nopidfile:如果是守护进程的方式运行,则需要制定这个配置文件loglevel:日志级别# Specify the server verbosity level. # This can be one of: # debug (a lot of information, useful for development/testing) # verbose (many rarely useful info, but not a mess like the debug level) # notice (moderately verbose, what you want in production probably) # warning (only very important / critical messages are logged) loglevel noticelogfile:日志的文件名databases:数据库的数量,默认是16个数据库always-show-logo:是否显示开启时候的logo -
快照
持久化,在规定的时间内执行了多少次的操作,则会生快照
一般会有
rdb和aof两个文件-
默认的规则
# Save the DB on disk: # # save <seconds> <changes> # # Will save the DB if both the given number of seconds and the given # number of write operations against the DB occurred. # # In the example below the behaviour will be to save: # after 900 sec (15 min) if at least 1 key changed # after 300 sec (5 min) if at least 10 keys changed # after 60 sec if at least 10000 keys changed # # Note: you can disable saving completely by commenting out all "save" lines. # # It is also possible to remove all the previously configured save # points by adding a save directive with a single empty string argument # like in the following example: # # save "" # 如果900s内,有一次key进行了修改,那么就进行持久化操作 save 900 1 # 如果300s内,有超过10个key进行了修改,那么就进行持久化操作 save 300 10 # 如果60s内,有超过10000个key进行了修改,那么就进行持久化操作 save 60 10000 -
stop-writes-on-bgsave-error:持久化出现错误后是否继续工作 -
rdbcompression:是否压缩rdb文件 -
rdbchecksum:保存rdb文件的时候进行校验 -
dir:rdb文件保存的目录
-
-
安全
requirepass:设置登录密码 -
客户端
maxclients:最大客户端数maxmemory <bytes>:redis最大内存设置maxmemory-policy:内存达到上限后的处理策略# volatile-lru -> remove the key with an expire set using an LRU algorithm # allkeys-lru -> remove any key according to the LRU algorithm # volatile-random -> remove a random key with an expire set # allkeys-random -> remove a random key, any key # volatile-ttl -> remove the key with the nearest expire time (minor TTL) # noeviction -> don't expire at all, just return an error on write operations # # Note: with any of the above policies, Redis will return an error on write # operations, when there are no suitable keys for eviction. # # At the date of writing these commands are: set setnx setex append # incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby # zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby # getset mset msetnx exec sort # # The default is: # # maxmemory-policy noeviction -
APPEND ONLY模式,aof配置appendonly:是否开启aofappendfilename:aof的文件名# appendfsync always ## 每次修改都执行一次 appendfsync everysec ## 每秒都执行一次,可能会丢失1s的数据 # appendfsync no ## 不执行不同步