Redis配置参数详解

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 六种方式
1volatile-lru:只对设置了过期时间的key进行LRU(默认值) 

2、allkeys-lru : 删除lru算法的key   

3volatile-random:随机删除即将过期key   

4、allkeys-random:随机删除   

5volatile-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数据会被同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一种开源的NoSQL数据库,它以键值对的形式存储数据。Redis配置文件是一个文本文件,用于配置Redis服务器的各种参数和选项。下面是Redis配置文件的详细解释: 1. daemonize:设置是否以守护进程的方式运行Redis服务器,可选值为yes或者no。 2. port:设置Redis服务器监听的端口号,默认为6379。 3. bind:设置Redis服务器绑定的IP地址,默认为127.0.0.1,表示只能本地访问。 4. timeout:设置客户端连接Redis服务器的超时时间。 5. tcp-keepalive:设置客户端连接Redis服务器的TCP Keepalive选项。 6. loglevel:设置Redis服务器的日志级别,可选值为debug、verbose、notice和warning。 7. logfile:设置Redis服务器的日志文件名。 8. databases:设置Redis服务器支持的数据库数量,默认为16个。 9. save:设置Redis服务器自动保存数据库的条件,格式为save <seconds> <changes>,表示在<seconds>秒内,如果有<changes>个键值对被修改,则自动保存数据库。 10. rdbcompression:设置是否对RDB文件进行压缩。 11. dbfilename:设置RDB文件的文件名。 12. dir:设置RDB文件的存储路径。 13. maxclients:设置Redis服务器支持的最大客户端连接数。 14. appendonly:设置是否开启AOF持久化模式。 15. appendfilename:设置AOF文件的文件名。 16. appendfsync:设置AOF文件同步的策略,可选值为always、everysec和no。 17. auto-aof-rewrite-percentage:设置触发AOF文件重写的比率。 18. auto-aof-rewrite-min-size:设置触发AOF文件重写的最小大小。 19. no-appendfsync-on-rewrite:设置是否在AOF文件重写时禁止同步。 20. slowlog-log-slower-than:设置慢查询日志的阈值,单位为微秒。 21. slowlog-max-len:设置慢查询日志的最大长度。 22. hash-max-ziplist-entries:设置压缩列表中哈希表元素的最大数量。 23. hash-max-ziplist-value:设置压缩列表中哈希表元素的最大值。 24. list-max-ziplist-entries:设置压缩列表中列表元素的最大数量。 25. list-max-ziplist-value:设置压缩列表中列表元素的最大值。 26. set-max-intset-entries:设置整数集合中元素的最大数量。 27. zset-max-ziplist-entries:设置压缩列表中有序集合元素的最大数量。 28. zset-max-ziplist-value:设置压缩列表中有序集合元素的最大值。 29. activerehashing:设置是否启用主动重新哈希。 30. client-output-buffer-limit:设置客户端输出缓冲区的限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值