一、Redis使用
键名保持简短
键名保持简短可以减少Redis的存储,在大数据量存储的情况下,节约下来的空间就会很明显。
不使用keys命令
keys命令,本意是进行调试时使用,不可以用在常规的代码逻辑中进行业务处理,在数据量大的系统中应用会带来极大的性能问题,可能表现为CPU飙升,磁盘IO过高等,拖垮整台机器。
避免性能低下的Redis脚本
redis内置lua脚本解释器,执行一个运行很慢的lua脚本会导致服务器忙,在执行脚本时其他客户端连接无法连接到redis
低频数据不使用Redis
在使用Redis进行数据缓存时,选择合适的场景进行应用,避免Redis滥用增加维护成本。
二、Redis配置
tcp-keepalive
如果这个值不为0,使用SO_KEEPALIVE发送ACK,如果开启使用这个选项的值设置在60s比较合理。
save
save
Redis rdb持久化,默认开启,将key-value存储在dump.rdb文件,Redis服务重启时会加载这个文件,在qps高的情况下,会导致磁盘io过高。
save 900 1 | 900秒有1个key发生改变 |
save 300 10 | 300秒有10个key发生改变 |
save 60 10000 | 60秒有10000个key发生改变 |
rdbcompression
默认为yes开启状态,在进行rdb持久化是是否进行压缩存储,开启后存储rdb文件会消耗更多的CPU资源,设置为no可以减少,但是rdb文件会很大。
appendonly
默认是no关闭的,开启后会将写入命令存入 appendonly.aof文件,Redis服务重启时如果存在
appendonly.aof文件,优先从appendonly.aof文件恢复数据。
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
存储集合的value数量没有超过-max-zipmap-entries限制大小, -max-zipmap-value,值如果大小不超过限制大小,会使用线性紧凑格式存储,超过该值转换为真正的集合。
slowlog-log-slower-than
慢日志分析,单位秒,超出该配置选项设置时间的命令将被记录到日志中
slowlog-max-len
保留的慢日志行数,默认128超出将覆盖历史的