tcp-backlog 511
loglevel notice
此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。
tcp-keepalive 0
用来定时向client发送tcp_ack包来探测client是否存活的。默认不探测,官方建议值为60秒。
stop-writes-on-bgsave-error no (默认值为yes)
即当bgsave快照操作出错时停止写数据到磁盘,这样后面写错做均会失败,为了不影响后续写操作,故需将该项值改为no
yes:后台存储存储发生错误时禁止写入
rdbcompression yes (启动rdb文件压缩,耗费CPU资源,默认为yes)
rdbchecksum yes (对rdb数据进行校验,耗费CPU资源,默认为yes)
slave-serve-stale-data参数设置成yes,主从复制中,从服务器可以响应客户端请求;
slave-serve-stale-data参数设置成no,主从复制中,从服务器将阻塞所有请求,有客户端请求时返回“SYNC with master in progress”;
Slave-read-only 代表为只读状态
lua-time-limit 5000 设置lua脚本的最大运行时间,单位为毫秒
主从同步支持两种策略,即disk和socket方式(socket方式尚不完善,还处于实验阶段)。
新的slave端和重连的salve端不允许去继续同步进程,这被称之为“完全同步”。
一个RDB文件从master端传到slave端,分为两种情况:
1、支持disk:master端将RDB file写到disk,稍后再传送到slave端;
2、无磁盘diskless:master端直接将RDB file传到slave socket,不需要与disk进行交互。
无磁盘diskless方式适合磁盘读写速度慢但网络带宽非常高的环境。
repl-diskless-sync no 默认不使用diskless同步方式
repl-diskless-sync-delay 5 无磁盘diskless方式在进行数据传递之前会有一个时间的延迟,以便slave端能够进行到待传送的目标队列中,这个时间默认是5秒
repl-ping-slave-period 10 slave端向server端发送pings的时间区间设置,默认为10秒
repl-timeout 60 设置超时时间
repl-disable-tcp-nodelay no 是否启用TCP_NODELAY,如果启用则会使用少量的TCP包和带宽去进行数据传输到slave端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽。
repl-backlog-size 1mb 设置backlog的大小,backlog是一个缓冲区,在slave端失连时存放要同步到slave的数据,因此当一个slave要重连时,经常是不需要完全同步的,执行局部同步就足够了。backlog设置的越大,slave可以失连的时间就越长。
repl-backlog-ttl 3600 如果一段时间后没有slave连接到master,则backlog size的内存将会被释放。如果值为0则表示永远不释放这部份内存。
slave-priority 100 slave端的优先级设置,值是一个整数,数字越小表示优先级越高。当master故障时将会按照优先级来选择slave端进行恢复,如果值设置为0,则表示该slave永远不会被选择。
min-slaves-to-write 3
min-slaves-max-lag 10 设置当一个master端的可用slave少于N个,延迟时间大于M秒时,不接收写操作。
maxclients 10000设置redis允许的最大连接数
maxmemory 2G 定义REdis可用最大物理内存
maxmemory-policy allkeys-lru
maxmemory-policy 六种方式
1、volatile-lru:只对设置了过期时间的key进行LRU(默认值)
2、allkeys-lru : 删除lru算法的key
3、volatile-random:随机删除即将过期key
4、allkeys-random:随机删除
5、volatile-ttl : 删除即将过期的
6、noeviction : 永不过期,返回错误
maxmemory-samples 5 Redis 的 LRU 是取出配置的数目的key,然后从中选择一个最近最不经常使用的 key 进行置换,默认的 5
appendonly yes #开启AOF模式 原文1
appendfilename “appendonly.aof” #保存数据的AOF文件名称 原文1
#appendfsync always总是写入aof文件,并完成磁盘同步
appendfsync everysec #fsync模式 原文2
#appendfsync no写入aof文件,不等待磁盘同步
no-appendfsync-on-rewrite no
果该参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题
设置为yes:这就相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据。丢失多少数据呢?在linux的操作系统的默认设置下,最多会丢失30s的数据。
如果应用系统无法忍受延迟,而可以容忍少量的数据丢失,则设置为yes。如果应用系统无法忍受数据丢失,则设置为no。
auto-aof-rewrite-percentage 100
aof文件增长比例,指当前aof文件比上次重写的增长比例大小。aof重写即在aof文件在一定大小之后,重新将整个内存写到aof文件当中,以反映最新的状态(相当于bgsave)。这样就避免了,aof文件过大而实际内存数据小的问题(频繁修改数据问题).
auto-aof-rewrite-min-size 64mb
aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小).此变量仅初始化启动redis有效.如果是redis恢复时,则lastSize等于初始aof文件大小.
aof-load-truncated yes
指redis在恢复时,会忽略最后一条可能存在问题的指令。默认值yes。即在aof写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会log并继续,而no会直接恢复失败.
slowlog-log-slower-than 2000
slowlog-max-len 1000
其中slowlog-log-slower-than表示slowlog的划定界限,只有query执行时间大于slowlog-log-slower-than的才会定义成慢查询,才会被slowlog进行记录。slowlog-log-slower-than设置的单位是微妙,默认是10000微妙,也就是10ms
slowlog-max-len表示慢查询最大的条数,当slowlog超过设定的最大值后,会将最早的slowlog删除,是个FIFO队列
https://www.cnblogs.com/SailorXiao/p/5808871.html
latency-monitor-threshold 0
#redis延时监控系统在运行时会采样一些操作,以便收集可能导致延时的数据根源。
#通过 LATENCY命令 可以打印一些图样和获取一些报告,方便监控
#这个系统仅仅记录那个执行时间大于或等于预定时间(毫秒)的操作,
#这个预定时间是通过latency-monitor-threshold配置来指定的,
#当设置为0时,这个监控系统处于停止状态
notify-keyspace-events ""
Redis能通知 Pub/Sub 客户端关于键空间发生的事件,默认关闭
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
当hash只有少量的entry时,并且最大的entry所占空间没有超过指定的限制时,会用一种节省内存的
#数据结构来编码。可以通过下面的指令来设定限制
list-max-ziplist-entries 512
list-max-ziplist-value 64
与hash似,数据元素较少的list,可以用另一种方式来编码从而节省大量空间。
#这种特殊的方式只有在符合下面限制时才可以用
set-max-intset-entries 512
set有一种特殊编码的情况:当set数据全是十进制64位有符号整型数字构成的字符串时。
#下面这个配置项就是用来设置set使用这种编码来节省内存的最大长度。
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
与hash和list相似,有序集合也可以用一种特别的编码方式来节省大量空间。
#这种编码只适合长度和元素都小于下面限制的有序集合
hll-sparse-max-bytes 3000
HyperLogLog稀疏结构表示字节的限制。该限制包括
#16个字节的头。当HyperLogLog使用稀疏结构表示
#这些限制,它会被转换成密度表示。
#值大于16000是完全没用的,因为在该点
#密集的表示是更多的内存效率。
#建议值是3000左右,以便具有的内存好处, 减少内存的消耗
activerehashing yes
启用哈希刷新,每100个CPU毫秒会拿出1个毫秒来刷新Redis的主哈希表(顶级键值映射表)
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
客户端的输出缓冲区的限制,可用于强制断开那些因为某种原因从服务器读取数据的速度不够快的客户端
hz 10
默认情况下,“hz”的被设定为10。提高该值将在Redis空闲时使用更多的CPU时,但同时当有多个key
#同时到期会使Redis的反应更灵敏,以及超时可以更精确地处理
aof-rewrite-incremental-fsync yes
当一个子进程重写AOF文件时,如果启用下面的选项,则文件每生成32M数据会被同步