# 使用复杂度高的命令
# 命令执行超过5毫秒记录慢日志
CONFIG SET slowlog-log-slower-than 5000
# 只保留最近1000条慢日志
CONFIG SET slowlog-max-len 1000
127.0.0.1:6379> SLOWLOG get 5
1) 1) (integer) 32693 # 慢日志ID
2) (integer) 1593763337 # 执行时间
3) (integer) 5299 # 执行耗时(微妙)
4) 1) "LRANGE" # 具体执行的命令和参数
2) "user_list_2000"
3) "0"
4) "-1"
2) 1) (integer) 32692
2) (integer) 1593763337
3) (integer) 5044
4) 1) "GET"
2) "book_price_1000"
...
# 存储大key
redis-cli -h $host -p $port --bigkeys -i 0.01
# 集中过期
# 在过期时间点之后的5分钟内随机过期掉
redis.expireat(key, expire_time + random(300))
# 实例内存达到上限
-
allkeys-lru:不管key是否设置了过期,淘汰最近最少访问的key -
volatile-lru:只淘汰最近最少访问并设置过期的key -
allkeys-random:不管key是否设置了过期,随机淘汰 -
volatile-random:只随机淘汰有设置过期的key -
allkeys-ttl:不管key是否设置了过期,淘汰即将过期的key -
noeviction:不淘汰任何key,满容后再写入直接报错 -
allkeys-lfu:不管key是否设置了过期,淘汰访问频率最低的key(4.0+支持) -
volatile-lfu:只淘汰访问频率最低的过期key(4.0+支持)
# fork耗时严重
# 绑定CPU
# 开启AOF
-
appendfsync always:每次写入都刷盘,对性能影响最大,占用磁盘IO比较高,数据安全性最高 -
appendfsync everysec:1秒刷一次盘,对性能影响相对较小,节点宕机时最多丢失1秒的数据 -
appendfsync no:按照操作系统的机制刷盘,对性能影响最小,数据安全性低,节点宕机丢失数据取决于操作系统刷盘机制
# 使用Swap
# 网卡负载过高
# 总结