• Redis.conf配置文件内容详解


    #默认以后台方式运行
    daemonize yes
        
    #指定redis pid文件
    pidfile /data/apps/var/redis2/redis2.pid
       
    #指定redis启动占用的端口 
    port 6380
    
    #此项配置内容属于redis优化内容    
    tcp-backlog 2048
    
    #redis绑定的ip或者主机名,注意如果此处绑定设置为127.0.0.1,将会出现其他服务器上的服务连接至此台redis失败的情况    
    bind redis1
    
    #指定socket连接空闲时间(秒),如果连接空闲超时将会关闭连接,设置为0表示用不超时
    timeout 0
    
    #指定tcp连接是否为长连接,长连接将会额外增加server端的开支,默认为0表示禁用
    tcp-keepalive 0
    
    #指定日志级别,notice适用于生产环境
    loglevel notice
    
    #指定log日志位置
    logfile "/usr/local/redis.log"
    
    #是否将日志输出到系统日志,默认为no
    syslog-enabled no
    
    #指定syslog的标示符,如果'syslog-enabled'是no,则这个选项无效
    syslog-ident redis
    
    #设定redis所允许的最大"db簇"的个数,默认为16个簇
    databases 16
    
    #如果snapshot过程中出现错误,即数据持久化失败,是否终止所有的客户端write请求
    stop-writes-on-bgsave-error yes
    
    #是否启用rdb文件压缩手段,默认为yes
    rdbcompression yes
    
    #是否对rdb文件使用CRC64校验和,默认为"yes",那么每个rdb文件内容的末尾都会追加CRC校验和
    rdbchecksum yes
    
    #指定rdb文件的名称
    dbfilename dump.rdb
    
    #指定rdb/AOF文件的目录位置
    dir /usr/local/data/redis/
    
    #设置redis占用最大内存数,如果超过redis会试图删除即将过期的key,而保护具有较长生命周期的key
    maxmemory 5gb
    
    #当内存占用超过maxmemory限定时,触发主动清理策略
    maxmemory-policy allkeys-lru
    #清理策略方式如下:
     volatile-lru:只对设置了过期时间的key进行LRU(默认值)
     allkeys-lru : 删除lru算法的key
     volatile-random:随机删除即将过期key
     allkeys-random:随机删除
     volatile-ttl : 删除即将过期的
     noeviction : 永不过期,返回错误
    
    #设置replication,使用slaveof把一个redis实例设置为另一个redis server的从库。
    slaveof redis2 6379
    
    #当slave丢失与master的连接时,或者slave仍然在于master进行数据同步时(还没有与master保持一致),slave可以有两种方式来响应客户端请求:
    slave-serve-stale-data yes
    方式:
    如果 slave-serve-stale-data 设置成 'yes' (the default) slave会仍然响应客户端请求,此时可能会有问题
    如果 slave-serve-stale data设置成  'no'  slave会返回"SYNC with master in progress"这样的错误信息。 但 INFO 和SLAVEOF命令除外
    
    #slave服务器是否可写
    slave-read-only yes
    
    #slave与master的连接,是否禁用TCP nodelay选项
    yes表示禁用,那么socket通讯中数据将会以packet方式发送,可以提高socket通讯的效率(tcp交互次数),但是小数据将会被buffer,不会被立即发送,对于接受者可能存在延迟
    "no"表示开启tcp nodelay选项,任何数据都会被立即发送,及时性较好,但是效率较低,建议设置为no
    repl-disable-tcp-nodelay no
    
    #slave的权重值,默认100.当master失效后,Sentinel将会从slave列表中找到权重值最低的slave,并提升为master,适用Sentinel模块,需要额外的配置文件支持
    slave-priority 100
    
    #是否开启aof功能,"yes"表示开启,在开启情况下,aof文件同步功能才生效,默认为"no",对master机器,建议使用AOF,对于slave,建议关闭
    appendonly no
    
    #aof文件存储路径
    appendfilename "appendonly.aof"
    
    #任何一个aof记录都立即进行文件同步(磁盘写入),安全性最高;如果write请求比较密集,将会造成较高的磁盘IO开支和响应延迟,everysec每秒同步一次
    appendfsync everysec
    
    #在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘IO开支和请求阻塞时间,默认为no,表示"不暂缓",新的aof记录仍然会被立即同步
    no-appendfsync-on-rewrite no
    
    #aof每次rewrite之后,都会记住当前aof文件的大小,当文件增长到一定比例后,继续进行aof rewrite
    auto-aof-rewrite-percentage 100
    
    #aof rewrite触发时机,最小文件尺寸
    auto-aof-rewrite-min-size 64mb
    
    #lua脚本运行的最大时间
    lua-time-limit 5000
    
    #慢操作日志记录
    slowlog-log-slower-than 10000
    
    #慢操作日志保留的最大条数
    slowlog-max-len 128
    
    #键空间通知,""表示关闭
    notify-keyspace-events ""
    
    ##ziplist中允许存储的最大条目个数
    hash-max-ziplist-entries 512
    
    #ziplist中允许条目value值最大字节数
    hash-max-ziplist-value 64
    
    #对于list类型,将会采取ziplist,linkedlist两种编码类型
    list-max-ziplist-entries 512
    
    #ziplist中允许条目value值最大字节数
    list-max-ziplist-value 64
    
    #intset中允许保存的最大条目个数,如果达到阀值,intset将会被重构为hashtable
    set-max-intset-entries 512
    
    #设置同上
    zset-max-ziplist-entries 128
    
    #设置同上
    zset-max-ziplist-value 64
    
    #是否开启顶层数据结构的rehash功能,如果内存允许,请开启
    activerehashing yes
    
    #客户端buffer控制
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 512mb 512mb 600
    client-output-buffer-limit pubsub 32mb 8mb 60
    
    #Redis server执行后台任务的频率,默认为10,此值越大表示redis对"间歇性task"的执行次数越频繁
    hz 10
    
    #aof rewrite过程中,是否采取增量"文件同步"策略,默认为"yes",而且必须为yes
    aof-rewrite-incremental-fsync yes
    

    tcp-keepalive属于redis优化内容,如果有兴趣的话可以看看这篇博客写的很好https://ylgrgyq.github.io/2017/05/18/tcp-backlog/

    清理策略

    当Redis内存使用达到maxmemory时,需要选择设置好的maxmemory-policy进行对老数据的置换。
    下面是可以选择的置换策略:

    • noeviction: 不进行置换,表示即使内存达到上限也不进行置换,所有能引起内存增加的命令都会返回error
    • allkeys-lru: 优先删除掉最近最不经常使用的key,用以保存新数据
    • volatile-lru: 只从设置失效(expire set)的key中选择最近最不经常使用的key进行删除,用以保存新数据
    • allkeys-random: 随机从all-keys中选择一些key进行删除,用以保存新数据
    • volatile-random: 只从设置失效(expire set)的key中,选择一些key进行删除,用以保存新数据
    • volatile-ttl: 只从设置失效(expire set)的key中,选出存活时间(TTL)最短的key进行删除,用以保存新数据
  • 相关阅读:
    《父亲写的散文诗》--许飞
    python 解数独
    github key already in use
    openwrt ddns绑定域名
    hexo 长期后台运行
    修复云服务器rpm无法使用的问题
    vim 取消筛选高亮
    力扣 2021.02.25 最长公共前缀
    [模板]-Manacher
    背包问题回顾
  • 原文地址:https://www.cnblogs.com/Cherry-Linux/p/7640906.html
Copyright © 2020-2023  润新知