最近公司正好在搞redis,学习一下顺便做一个简单的配置文件解释!因为用的是windows系统,最高版本就是3.2.1所以.....
如果有不妥的地方欢迎大家交流!!!
# Redis configuration file example
# 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
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
################################## INCLUDES ###################################
# 假如说你有一个可用于所有的 redis server 的标准配置模板,
# 但针对某些 server 又需要一些个性化的设置,
# 你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。
# 但是要注意include 是不能被 config rewrite 命令改写的
# 由于 redis 总是以最后的加工线作为一个配置指令值,所以你最好是把 include 放在这个文件的最前面,
# 以避免在运行时覆盖配置的改变,相反,你就把它放在后面
#
# include .\path\to\local.conf
#
# include c:\path\to\other.conf
################################## NETWORK #####################################
# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
#指定要绑定的IP地址
bind 127.0.0.1
#是否开启密码保护模式
protected-mode yes
#绑定端口号
port 6379
#设置tcp的backlog(连接队列)
#相当于是完成和未完成3次握手的队列总和
tcp-backlog 511
#指定unix socket的路径
# unixsocket /tmp/redis.sock
#指定unix socket file的权限,最大777
# unixsocketperm 700
#连接超时时间,默认0无限制
timeout 0
#检测keepalive的值【健康检查】,建议60秒
# A reasonable value for this option is 60 seconds.
tcp-keepalive 0
################################# GENERAL #####################################
#日志级别
#debug(调试):大量信息,对开发/测试有用
#verbose(冗长):许多信息很少有用,但不像调试级别那样混乱
#notice(注意):适度冗长,可能是生产中需要的
#warning(警告):仅记录非常重要/关键的消息
loglevel notice
#日志文件存储路径
logfile "server_log.txt"
#是否启用日志
syslog-enabled yes
#系统日志标识
syslog-ident redis
#启动后有多少个数据库,默认16个
databases 16
################################ SNAPSHOTTING ################################
# 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
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件可以多个条件配合
#900秒内1次更改
save 900 1
#300秒内10次更改
save 300 10
#60秒内10000次更改
save 60 10000
#持久化过程中失败,redis不会停止所有写请求
stop-writes-on-bgsave-error yes
#是否使用LZF算法对RDB文件进行压缩
rdbcompression yes
#是否对RDB数据进行校
rdbchecksum yes
#RDB持久化文件名称【不包含路径】
dbfilename dump.rdb
#持久化文件保存路径
dir ./
################################# REPLICATION #################################
#将当前服务器转变为指定服务器的从属服务器
# slaveof <masterip> <masterport>
#主服务器密码
# masterauth <master-password>
# yes,主从复制中,从服务器可以响应客户端请求;
# no,主从复制中,从服务器将阻塞所有请求,有客户端请求时返回“SYNC with master in progress”
slave-serve-stale-data yes
# 从服务器是否为只读,默认只读
slave-read-only yes
#
# Replication SYNC strategy: disk or socket.
#是否启用无硬盘复制
repl-diskless-sync no
#无硬盘复制超时时间,默认5秒
repl-diskless-sync-delay 5
#用于集群内心跳机制。心跳发送间隔,默认10秒
# repl-ping-slave-period 10
#主从同步超时时间,默认60秒;注意:超时时间一定要比心跳时间大
# repl-timeout 60
#主从同步时是否禁用tcp-nodelay
#开启情况使用更少的带宽进行主从同步,但同步延迟会加大
repl-disable-tcp-nodelay no
#当缓存到达指定值后同步到从属服务器
repl-backlog-size 1mb
#数据在缓冲区中的过时时间,默认3600秒
# repl-backlog-ttl 3600
#从服务器优先级,用于选举master,编号越小优先级越高
slave-priority 100
#以下两个设置配合使用
#即:当主节点有3个从节点,并且3个节点的链接延迟小于10秒master则执行客户端的写操作
# 如果3台没有同步完则不接受客户端的各种请求
#设置执行写操作需要的最少从属服务器数量
# min-slaves-to-write 3
#设置最大连接延迟
# min-slaves-max-lag 10
#
################################## SECURITY ###################################
#设置本节点的redis访问密码
# requirepass foobared
# Example:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# It is also possible to completely kill a command by renaming it into
# an empty string:
#危险命令重命名
# rename-command FLUSHALL ""
# rename-command FLUSHDB ""
# rename-command CONFIG ""
# rename-command KEYS ""
#
# Please note that changing the name of commands that are logged into the
# AOF file or transmitted to slaves may cause problems.
################################### LIMITS ####################################
#客户端最大连接数,默认是10000
#超出报:max number of clients reached
# maxclients 10000
#是否开启持久化
# persistence-available [(yes)|no]
#
#最大内存数
# maxmemory <bytes>
#
#volatile-lru:LRU算法进行移除,只针对设置了过期时间的值
#allkeys-lru:对所有的值用LRU算法进行移除
#volatile-random:在过期结合中移除随机的key
#allkeys-random:移除随机key
#设置内存移除规则
# maxmemory-policy noeviction
#样例数量
# maxmemory-samples 5
############################## APPEND ONLY MODE ###############################
#是否开启AOF模式
appendonly no
# The name of the append only file (default: "appendonly.aof")
appendfilename "appendonly.aof"
#写入策略
#每一次写操作都会调用一次fsync
# appendfsync always
#每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘
appendfsync everysec
#Redis不会主动调用fsync去将AOF日志内容同步到磁盘
# appendfsync no
#是否在后台写时同步/单写,no表示同步写
no-appendfsync-on-rewrite no
#重写机制,当文件小于100byte时不能触发
auto-aof-rewrite-percentage 100
#aof文件重写最小的文件大小
auto-aof-rewrite-min-size 64mb
#指redis在恢复时,会忽略最后一条可能存在问题的指令。
#默认值yes,即在aof写入时,可能存在指令写错的问题(突然断电,写了一半)
#当AOF文件损坏时,是直接加载还是修复后加载
aof-load-truncated yes
################################ LUA SCRIPTING ###############################
#超时时间,超过则阻塞其他任务以执行Lua脚本
lua-time-limit 5000
################################ REDIS CLUSTER ###############################
#
#是否启用集群支持
# cluster-enabled yes
#群集节点每次发生更改时自动保留群集配置状态的文件路径
# cluster-config-file nodes-6379.conf
#Redis群集节点可以不可用的最长时间
# cluster-node-timeout 15000
#集群故障转移时间
# cluster-slave-validity-factor 10
#从节点迁移算法
# cluster-migration-barrier 1
#为no时,表示当负责一个插槽的主库下线且没有相应的从库进行故障恢复时,集群仍然可用
# cluster-require-full-coverage yes
################################## SLOW LOG ###################################
#表示slowlog的划定界限,只有query执行时间大于slowlog-log-slower-than的才会定义成慢查询,才会被slowlog进行记录
slowlog-log-slower-than 10000
#表示慢查询最大的条数
slowlog-max-len 128
################################ LATENCY MONITOR ##############################
#
latency-monitor-threshold 0
############################# EVENT NOTIFICATION ##############################
#当redis的key被删除时,redis会发送两种不同类型的事件,特定的事件会往特定的频道发送通知,我们只要订阅这个特定的频道等待通知即可.
#键空间通知
# PUBLISH __keyspace@0__:foo del
#键通知
# PUBLISH __keyevent@0__:del foo
#key过期时间配置
#notify-keyspace-events 的参数为 “Ex”。x 代表了过期事件
#notify-keyspace-events "Ex" 保存配置后,重启Redis服务,使配置生效。
# notify-keyspace-events Elg
# notify-keyspace-events Ex
#
notify-keyspace-events ""
############################### ADVANCED CONFIG ###############################
#表示当hash项(field,value)数>512即ziplist项>1024的时候转为dict
hash-max-ziplist-entries 512
#64,表示当hash中的value长度超过64的时候转为dict。
hash-max-ziplist-value 64
#参数的含义解释,取正值时表示quicklist节点ziplist包含的数据项。取负值表示按照占用字节来限定quicklist节点ziplist的长度。
# -5: 每个quicklist节点上的ziplist大小不能超过64 Kb。
# -4: 每个quicklist节点上的ziplist大小不能超过32 Kb。
# -3: 每个quicklist节点上的ziplist大小不能超过16 Kb。
# -2: 每个quicklist节点上的ziplist大小不能超过8 Kb。(默认值)
# -1: 每个quicklist节点上的ziplist大小不能超过4 Kb。
list-max-ziplist-size -2
# list设计最容易被访问的是列表两端的数据,中间的访问频率很低
#如果符合这个场景list还有一个配置可以对中间节点进行压缩(采用的LZF——一种无损压缩算法)进一步节省内存
#含义:
# 0: 是个特殊值,表示都不压缩。这是Redis的默认值。
# 1: 表示quicklist两端各有1个节点不压缩,中间的节点压缩。
# 2: 表示quicklist两端各有2个节点不压缩,中间的节点压缩。
list-compress-depth 0
#添加的集合元素个数超过了set-max-intset-entries配置的值的时候,也会导致intset转成dict
set-max-intset-entries 512
#当有序集合的元素小于zset-max-ziplist-entries配置(默认是128个)
#同时每个元素的值都小于zset-max-ziplist-value(默认是64字节)时
#Redis会用ziplist来作为有序集合的内部编码实现,ziplist可以有效的减少内存的使用
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
#HyperLogLog数据结构优化参数
hll-sparse-max-bytes 3000
#:是否重置Hash表,设置成yes后redis将每100毫秒使用1毫秒CPU时间来对redis的hash表重新hash可降低内存的使用
#当使用场景有较为严格的实时性需求,不能接受Redis时不时的对请求有2毫秒的延迟的话
#把这项配置为no,如果没有这么严格的实时性要求,可以设置为 yes,以便能够尽可能快的释放内存
activerehashing yes
#客户端输出缓冲区的配置
#三个参数分别表示 最大限制 最小限制 最小限制的持续时间
client-output-buffer-limit slave 256mb 64mb 60
#客户端发布/订阅模式的缓冲限制
client-output-buffer-limit pubsub 32mb 8mb 60
# 设置Redis后台任务执行频率,比如清除过期键任务。
# 设置范围为1到500,默认为10.越大CPU消耗越大,延迟越小。
# 建议不要超过100
hz 10
# 当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次。
# 这有助于更快写入文件到磁盘避免延迟
aof-rewrite-incremental-fsync yes
################################## INCLUDES ###################################
# 包含一个或多个其他配置文件。
# 这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。
# 包含文件特性允许你引人其他配置文件
# include /path/to/local.conf
# include /path/to/other.conf