Rides配置文件详解

#版本:Rides-7.0.7

去除注释配置文件内容如下:

bind 0.0.0.0                  #指定监听地址,支持用空格隔开的多个监听IP


protected-mode yes            #redis3.2之后加入的新特性,在没有设置bind IP和密码的时候,
                               redis只允许访问127.0.0.1:6379,可以远程连接,但当访问将 
                               提示警告信息并拒绝远程访问


port 6379                     #监听端口,默认6379/tcp


tcp-backlog 511               #三次握手的时候server端收到client ack确认号之后的队列值, 
                               即全连接队列长度


timeout 0                     #客户端和Redis服务端的连接超时时间,默认是0,表示永不超时


tcp-keepalive 300             #TCP会话保持时间300s


daemonize no                  #默认no,即直接运行redis-server程序时,不作为守护进程运行, 
                               而是以前台方式运行,如果想在后台运行需改成yes,当redis作为 
                               守护进程运行的时候,它会写一个 pid 到/var/run/redis.pid 
                               文件 


pidfile /apps/redis/run/redis_6379.pid   #pid文件路径


loglevel notice                   ##日志级别


logfile /apps/redis/log/redis-6379.log   #日志文件路径


databases 16                     #设置数据库数量,默认:0-15,共16个库   


always-show-logo no              #在启动redis 时是否显示或在日志中记录记录redis的logo


set-proc-title yes


proc-title-template "{title} {listen-addr} {server-mode}"  
#在更改进程标题时,使用以下模块来构造修改后的标题
{title} 父进程执行的进程名称,或子进程的类型。
{listen-addr} 绑定地址或 ‘*’ 后跟 TCP 或 TLS 端口侦听,或 Unix 套接字(如果可用)。
{server-mode} 特殊模式,即“[sentinel]”或“[cluster]”。


stop-writes-on-bgsave-error yes  #默认为yes时,可能会因空间满等原因快照无法保存出错时,
                                  会禁止redis写入操作,生产建议为no。只针对配置文件中
                                  的自动save有效


rdbcompression yes               #持久化到RDB文件时,是否压缩,"yes"为压缩,"no"则反之


rdbchecksum yes                  #是否对备份文件开启RC64校验,默认是开启


dbfilename dump.rdb              #快照文件名


rdb-del-sync-files no            #默认配置是 rdb-del-sync-files no,主从进行全量同步时, 
                                 通过传输 RDB 内存快照文件实现,没有开启 RDB 持久化的实
                                 例在同步完成后会删除该文件,通常情况下保持默认即可


dir /apps/redis/data/              #快照文件保存路径


replica-serve-stale-data yes       
#当从库同主库失去连接或者复制正在进行,从机库有两种运行方式:
1、设置为yes(默认设置),从库会继续响应客户端的读请求,此为建议值
2、设置为no,除去特定命令外的任何请求都会返回一个错误"SYNC with master in progress"


replica-read-only yes            #是否设置从库只读,建议值为yes,否则主库同步从库时可能会
                                  覆盖数据,造成数据丢失


repl-diskless-sync yes
#是否使用socket方式复制数据(无盘同步),新slave第一次连接master时需要做数据的全量同步,
redisserver就要从内存dump出新的RDB文件,然后从master传到slave,
有两种方式把RDB文件传输给客户端:
1、基于硬盘(disk-backed):为no时,master创建一个新进程dump生成RDB磁盘文件,RDB完成之后由
父进程(即主进程)将RDB文件发送给slaves,此为默认值
2、基于socket(diskless):master创建一个新进程直接dump RDB至slave的网络socket,不经过主
进程和硬盘
推荐使用基于硬盘(为no),是因为RDB文件创建后,可以同时传输给更多的slave,
但是基于socket(为yes), 新slave连接到master之后得逐个同步数据。只有当磁盘I/O较慢且网络较快 
时,可用diskless(yes),否则一般建议使用磁盘(no)             


repl-diskless-sync-delay 5
#diskless时复制的服务器等待的延迟时间,设置0为关闭,在延迟时间内到达的客户端,会一起通过diskless方式同步数据,但是一旦复制开始,master节点不会再接收新slave的复制请求,直到下一次
同步开始才再接收新请求。即无法为延迟时间后到达的新副本提供服务,新副本将排队等待下一次RDB传
输,因此服务器会等待一段时间才能让更多副本到达。推荐值:30-60


repl-diskless-sync-max-replicas 0
#如果是无硬盘传输,如果预期的最大副本数已连接,则可以在最大延时之前进行复制在主服务器配置
repl-diskless-sync-max-replicas <int> 默认 0 标识未定义


repl-diskless-load disabled
#是否使用无磁盘加载,有三项:
disabled:不要使用无磁盘加载,先将rdb文件存储到磁盘
on-empty-db:只有在完全安全的情况下才使用无磁盘加载
swapdb:解析时在RAM中保留当前db内容的副本,直接从套接字获取数据。
默认配置项:repl-diskless-load disabled


repl-disable-tcp-nodelay no
#是否在slave套接字发送SYNC之后禁用 TCP_NODELAY,如果选择"yes",Redis将合并多个报文为一个
大的报文,从而使用更少数量的包向slaves发送数据,但是将使数据传输到slave上有延迟,Linux内核
的默认配置会达到40毫秒,如果 "no" ,数据传输到slave的延迟将会减少,但要使用更多的带宽


replica-priority 100               #当master不可用,哨兵Sentinel会根据slave的优先级选举
                                    一个master,此值最低的slave会优先当选master,而配置
                                    成0,永远不会被选举,一般多个slave都设为一样的值,让
                                    其自动选择


acllog-max-len 128


requirepass 123456                 #设置redis连接密码,之后需要AUTH pass,如果有特殊符号, 
                                    用" "引起来,生产建议设置


lazyfree-lazy-eviction no          #表示当 Redis 运行内存超过 maxmeory 时,是否开启lazy 
                                    free机制删除

lazyfree-lazy-expire no            #表示设置了过期时间的键值,当过期之后是否开启 lazy free 
                                    机制删除


lazyfree-lazy-server-del no        
#有些指令在处理已存在的键时,会带有一个隐式的 del 键的操作,比如 rename 命令,当目标键已存在,Redis 会先删除目标键,如果这些目标键是一个 big key,就会造成阻塞删除的问题,此配置表示在这种场景中是否开启 lazy free 机制删除


replica-lazy-flush no
#针对 slave(从节点) 进行全量数据同步,slave 在加载 master 的 RDB 文件前,会运行 flushall来清理自己的数据,它表示此时是否开启 lazy free机制删除


lazyfree-lazy-user-del no          #用户执行DEL命令时,Redis转为UNLINK命令执行


lazyfree-lazy-user-flush no        #区分同步和异步操作,默认为no,即同步操作


oom-score-adj no
#no:对oom-score-adj不做任何修改(默认值)
yes:relative的别名
absolute:oom-score-adj-values配置的值将写入内核
relative:当服务器启动时,使用相对于oom_score_adj初始值的值,然后将其限制在-1000到1000的范围内。因为初始值通常为0,所以它们通常与绝对值匹配



oom-score-adj-values 0 200 800
#默认 oom-score-adj-values 不设置的状况下会优先杀死后台子进程,而后主从节点优先杀死从节点。
因此这 3 个值分别用来设置主、从、后台子进程的分值的,分值范围从-1000~1000,分值越高越有可能被先杀死


disable-thp yes                     #用户控制THP是否开启


appendonly no                       #默认是no,yes就打开aof持久化


appendfilename "appendonly.aof"     #指定更新日志文件名,默认为appendonly.aof


appenddirname "appendonlydir"       #指定持久化文件存放目录


appendfsync everysec                
#有三种模式:
always:每次事件循环都进行一次同步操作(主线程)
everysec:每秒进行一次同步操作(另一个线程)
no:由操作系统控制同步操作(操作系统)


no-appendfsync-on-rewrite no        #此项设置为no,最为安全,建议不要修改


auto-aof-rewrite-percentage 100     
#指定 Redis 重写 AOF 文件的条件,默认为 100,它会对比上次生成的 AOF 文件大小。如果当前 AOF 文件的增长量大于上次 AOF 文件的 100%,就会触发重写操作;如果将该选项设置为 0,则不会触发重写操作


auto-aof-rewrite-min-size 64mb


aof-load-truncated yes


aof-use-rdb-preamble yes


aof-timestamp-enabled no


slowlog-log-slower-than 10000
#以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个
命令操作。默认值为10ms,一般一条命令执行都在微秒级,生产建议设为1ms-10ms之间



slowlog-max-len 128
#最多记录多少条慢日志的保存队列长度,达到此长度后,记录新命令会将最旧的命
令从命令队列中删除,以此滚动删除,即,先进先出,队列固定长度,默认128,值偏小,生产建议设为
1000以上


latency-monitor-threshold 0
#redis延时监控系统在运行时会采样一些操作,以便收集可能导致延时的数据根源。
通过 LATENCY命令 可以打印一些图样和获取一些报告,方便监控
这个系统仅仅记录那个执行时间大于或等于预定时间(毫秒)的操作,
这个预定时间是通过latency-monitor-threshold配置来指定的,
当设置为0时,这个监控系统处于停止状态


notify-keyspace-events ""                  #用于配置键空间的事件通知功能


hash-max-listpack-entries 512              #指定使用 listpack 存储的最大条目数
hash-max-listpack-value 64                 #listpack 中,条目 value 值最大字节数,建议
                                            设置成 1024


list-max-listpack-size -2                  #表示限制每个listpack大小


list-compress-depth 0
#表示一个quicklist两端不被压缩的节点个数。这里的节点是指quicklist双向链表的节点,而不是指ziplist里面的数据项个数参数


set-max-intset-entries 512               #intset能存储的最大元素个数,超过则用hashtable编码


zset-max-listpack-entries 128            #zset 数据结构优化参数
zset-max-listpack-value 64               #单个元素大小超过64byte,将用skiplist


hll-sparse-max-bytes 3000
#value大小小于等于hll-sparse-max-bytes使用稀疏数据结构(sparse),大于hll-sparse-max-bytes使用稠密的数据结构(dense)。一个比16000大的value是几乎没用的,建议的value大概为3000。如果对CPU要求不高,对空间要求较高的,建议设置到10000左右



stream-node-max-bytes 4096              #限制单个宏节点占用的最大内存
stream-node-max-entries 100             #指定每个宏节点中可存储条目的最大数量 


activerehashing yes


client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60


hz 10                                    #设置 Redis 后台任务执行频率,例如清除过期键任务


dynamic-hz yes
#可选值为​​yes​​和​​no​​,分别代表开启动态hz和关闭动态hz,默认值为​​yes​​。当动态hz开启时,您设置的hz参数的值,即configured_hz,将作为基线值,而Redis服务中的实际hz值会在基线值的基础上根据已连接到Redis的客户端数量自动调整,连接的客户端越多,实际hz值越高,Redis执行定期任务的频率就越高


aof-rewrite-incremental-fsync yes
#当一个子进程rewrite AOF file时,如果该值设置为yes, 则该文件每产生32mb文件时,就会被fsync-ed,从而避免一次性fsync的延迟


rdb-save-incremental-fsync yes
#默认yes,开启该参数后,生成 RDB 文件时,每产生 32 MB 数据就执行一次 fsync


jemalloc-bg-thread yes                  #默认yes,启用于jemalloc清理线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rides是一个分布式锁实现的库,它提供了简单而强大的分布式锁功能。你可以使用Rides来保证在分布式系统中的多个节点之间互斥地访问共享资源。 要使用Rides实现分布式锁,你需要先安装Rides库,并确保所有的节点都能够访问到该库。然后,你可以按照以下步骤来实现分布式锁: 1. 创建一个Rides实例:首先,你需要创建一个Rides实例,这个实例将负责协调各个节点之间的锁状态。你可以使用Rides的构造函数来创建实例,传入一个唯一的标识符作为参数。 2. 获取锁:当一个节点需要访问共享资源时,它可以通过调用Rides实例的`acquire`方法来获取锁。这个方法会返回一个布尔值,表示是否成功获取到了锁。如果获取到了锁,节点就可以继续执行后续的操作;如果没有获取到锁,则需要等待一段时间后再次尝试。 3. 释放锁:当一个节点完成了对共享资源的访问后,它应该调用Rides实例的`release`方法来释放锁。这样,其他节点就有机会获取到锁并继续执行它们的操作。 需要注意的是,Rides并不提供自动解锁的功能。所以,在使用Rides时,你需要确保在获取到锁之后,一定要记得在适当的时候释放锁,否则可能会导致资源无法被其他节点访问。 以上就是使用Rides实现分布式锁的基本步骤。通过Rides,你可以方便地实现分布式系统中的资源互斥访问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值