#redis.conf
#配置文件使用方法
# ./redis-server /path/to/redis.conf
################################## conf引用 ###################################
#可以把配置参数放到其他conf配置文件中,然后引入进来。
# include /path/to/local.conf
# include /path/to/other.conf
################################## 常规参数 ###################################
#是否在后台执行,yes:后台运行;no:不是后台运行
daemonize yes
#是否开启保护模式,默认开启。开启后,只能根据配置的bind地址和密码进行访问。
protected-mode yes
#redis的进程文件
pidfile /var/run/redis/redis-server.pid
#redis 端口。
port 6379
#TCP连接中已完成队列(完成三次握手之后)的长度,不能大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认511。
tcp-backlog 511
#现在redis访问地址
bind 127.0.0.1
#unix socket。
# unixsocket /var/run/redis/redis.sock
#unix socket使用文件权限
# unixsocketperm 700
#客户端空闲超时时间(秒),超时后服务端会断开连接,0标示服务端不会主动断开连接。
timeout 0
#tcp是否为长连接。0标示不开启长连接,非0标示长连接心跳值(秒)。
tcp-keepalive 0
#日志级别。包括:debug、verbose、notice、warn,默认notice。
loglevel notice
#日志路径。
logfile /var/log/redis/redis-server.log
#是否打开记录syslog功能
# syslog-enabled no
#syslog标识符。
# syslog-ident redis
#syslog设备
# syslog-facility local0
#数据库数量,默认使用DB0。
databases 16
################################ 快照(持久化)配置 ################################
# 900秒(15分钟)内有1个1key值改变就进行一次持久化
# 300秒(5分钟)内有10个key值改变就进行一次持久化
# 60秒(1分钟)内有10000个key值改变就进行一次持久化
save 900 1
save 300 10
save 60 10000
#RDB持久化出现错误后是否继续持久化,yes:停止,no:继续。默认yes。
stop-writes-on-bgsave-error yes
#RDB持久化时是否压缩,yes:压缩,no:不压缩。默认yes。
rdbcompression yes
#是否校验RDB文件,默认yes。
rdbchecksum yes
#RDB文件的名称
dbfilename dump.rdb
#rdb、aof文件的存储路径。
dir /var/lib/redis
################################# 复制配置 #################################
#master服务的IP地址及端口
slaveof 127.0.0.1 6379
#master的密码,和master的requirepass值保持一致。
# masterauth <master-password>
#与master失去通讯时,是否继续为客户端提供服务,yes表示继续,no表示终止,提示“SYNC with master in progress”,默认yes。
slave-serve-stale-data yes
#是否只读,默认yes。
slave-read-only yes
#是否使用socket方式复制数据,默认no。redis提供两种方式,disk和socket。在磁盘速度慢,网速快的情况下推荐用socket方式。
repl-diskless-sync no
#复制延迟时间(秒)。
repl-diskless-sync-delay 5
#slave与服务器的心跳(ping)间隔(秒),默认10秒。
# repl-ping-slave-period 10
#slave与master空闲超时时间(秒)。默认10秒。
# repl-timeout 60
#是否禁用tcp nodelay,默认是no,数据复制及时。数据量大时,建议设置为yes,可以提高数据复制速度。
repl-disable-tcp-nodelay no
#复制缓冲区,默认1m。
# repl-backlog-size 5mb
#缓冲区空闲时间(秒),超时释放内存空间。
# repl-backlog-ttl 3600
#master选举优先级,默认100。优先级越高的slave在故障转移的时候会被优先选举为master。0标示不会被选举。
slave-priority 100
#写入需要的最小slave数,小于该值时,不写入。0表示关闭该功能。
# min-slaves-to-write 3
#slave最小延迟(秒)。
# min-slaves-max-lag 10
################################### 安全设置 ###################################
#请求密码。
# requirepass password
#命令重命名,设置为空("")可以禁用该命令。
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
################################### 临界参数 ####################################
#最大客户端连接数量。默认10000,超过该值时报’max number of clients reached’错误。
# maxclients 10000
#最大内存。
# maxmemory <bytes>
#内存不足时的淘汰策略,默认volatile-lru。
#volatile-lru:利用LRU算法移除设置过期时间的最近最少使用的key。
#volatile-random:随机移除设置过期时间的key。
#volatile-ttl:按过期时间排序移除即将过期的key。
#allkeys-lru:利用LRU算法移除最近最少使用的key。
#allkeys-random:随机移除某个key。
#noeviction:不移除任何key,只是返回一个写错误。
#无论使用上述哪一种移除规则,如果没有合适的key可以移除的话,redis都会针对写请求返回错误信息
# maxmemory-policy noeviction
#lru和ttl样本数,默认3。
# maxmemory-samples 5
################################### AOF模式 ####################################
#是否在每次更新操作后进行日志记录,默认no。
appendonly no
#aof文件名,默认appendonly.aof
appendfilename "appendonly.aof"
#aof持久化策略的配置,默认everysec
#no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快。
#always表示每次写入都执行fsync,以保证数据同步到磁盘。
#everysec表示每秒执行一次fsync,可能会导致丢失这1s数据。
appendfsync everysec
#在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步,默认no。
no-appendfsync-on-rewrite no
#当目前aof文件大小超过上一次重写的aof文件大小的百分之多少进行重写,0表示不自动重写。
auto-aof-rewrite-percentage 100
#允许重写的最小aof文件大小,超过该值才进行重写。
auto-aof-rewrite-min-size 64mb
#是否加载不完整的aof文件,默认yes。设置为no时,需要手动修复aof文件。
aof-load-truncated yes
################################ LUA 脚本配置 ###############################
#lua脚本运行的最大时间(毫秒)。
lua-time-limit 5000
################################ 集群模式配置 ###############################
#是否开启集群模式,默认否。
# cluster-enabled yes
#集群配置文件(系统自动创建)。
# cluster-config-file nodes-6379.conf
#集群节点超时时长(毫秒)。
# cluster-node-timeout 15000
#slave参与选举的机制,0表示一直参与选举,正数表示slave失联超过(node-timeout * slave-validity-factor) + repl-ping-slave-period时不再参与选举,默认10。
# cluster-slave-validity-factor 10
#故障转移时最小从节点数
# cluster-migration-barrier 1
#集群是否需要全量覆盖,默认yes
# cluster-require-full-coverage yes
################################## 慢日志配置 ###################################
#执行时间(微秒),0表示记录所有命令。
slowlog-log-slower-than 10000
#保留的最大条数
slowlog-max-len 128
################################## 延迟监控配置 #################################
#延迟监控预定时间,0表示关闭监控。
latency-monitor-threshold 0
################################## 事件通知配置 #################################
#通知事件类型,默认关闭。
#notify-keyspace-events 的值可以是以下字符的组合:
##K 键空间通知,所有通知以 __keyspace@__ 为前缀
##E 键事件通知,所有通知以 __keyevent@__ 为前缀
##g DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知
##$ 字符串命令的通知
##l 列表命令的通知
##s 集合命令的通知
##h 哈希命令的通知
##z 有序集合命令的通知
##x 过期事件:每当有过期键被删除时发送
##e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送
##A 参数 g$lshzxe 的别名
#参数值中至少有K或者E。
notify-keyspace-events ""
################################## 高级配置 ###################################
#ziplist中允许存储的最大条目个数,默认为512,超过该值将会被重构为hashtable。
hash-max-ziplist-entries 512
#ziplist中允许存储的value最大长度,默认为64,超过该值将会被重构为hashtable。
hash-max-ziplist-value 64
#ziplist中允许存储的最大条目个数,默认为512,超过该值将会被重构为linkedlist。
list-max-ziplist-entries 512
#ziplist中允许存储的value最大长度,默认为64,超过该值将会被重构为linkedlist。
list-max-ziplist-value 64
#intset中允许存储的最大条目个数,默认为512,超过该值将会被重构为hashtable。
set-max-intset-entries 512
#ziplist中允许存储的最大条目个数,默认为128,超过该值将会被重构为skiplist。
zset-max-ziplist-entries 128
#ziplist中允许存储的value最大长度,默认为64,超过该值将会被重构为skiplist。
zset-max-ziplist-value 64
#使用稀疏数据结构(sparse)和稠密数据结构(dense)的value长度临界值,小于使用稀疏数据结构,大于使用稠密数据结构,默认3000。
hll-sparse-max-bytes 3000
#是否启用哈希刷新,每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,rehash能够很大程度上提高K-V存取的效率,如果实时性要求非常高,建议设置为no。
activerehashing yes
#客户端的输出缓冲区限制,可用于强制断开那些因为某种原因从服务器读取数据的速度不够快的客户端。
#格式:client-output-buffer-limit <class> <hard> <soft> <seconds>,hard表示buffer最大值,一旦达到阀值将立即关闭连接;soft表示"容忍值",它和seconds配合,如果buffer值超过soft且持续时间达到了seconds,也将立即关闭连接;0表示关闭限制。
#normal client,第一个0表示取消hard limit,第二个0和第三个0表示取消soft limit。
client-output-buffer-limit normal 0 0 0
#slave client和MONITER client,如果client-output-buffer超过256mb,或者超过64mb持续60秒,那么服务器会断开客户端连接。
client-output-buffer-limit slave 256mb 64mb 60
#pubsub client,如果client-output-buffer超过32mb,或者超过8mb持续60秒,那么服务器会断开客户端连接。
client-output-buffer-limit pubsub 32mb 8mb 60
#执行后台任务的频率,默认10,必须大于0且小于500。
hz 10
#是否启用增量持久化,yes表示系统会每32MB执行一次fsync,可以避免过大的延迟峰值。
aof-rewrite-incremental-fsync yes