API或数据结构使用不合理
- 慢查询
查询慢查询日记,发现慢查询.
1)修改为低算法度的命令,如hgetall改为hmget等,禁用keys、sort等命令。
2)调整大对象:缩减大对象数据或把大对象拆分为多个小对象,防止一次命令操作过多的数据。大对象拆分过程需要视具体的业务决定,如用户好友集合存储在Redis中,有些热点用户会关注大量好友,这时可以按时间或其他维度拆分到多个集合中。
CPU饱和
使用统计命令redis-cli-h{ip}-p{port}--stat获取当前Redis使用情况,该命令每秒输出一行统计信息.
- 持久化阻塞
1.fork阻塞.
2.AOF刷盘阻塞
3.HugePage写操作阻塞 - CPU竞争
1.进程竞争 不建议和其他多核CPU密集型服务部署在一起。
2.绑定CPU 降低CPU频繁上下文切换的开销。(父进程创建子进程进行RDB/AOF重写时,如果做了CPU绑定,会与父进程共享使用一个CPU) - 内存交换(保证系统有足够的内存,设置redis最大的可用内存,降低系统使用swap优先级)
1.查询Redis进程号 redis-cli -p 6383 info server | grep process_id
2.根据进程号查询内存交换信息 cat /proc/4476/smaps | grep Swap - 网络问题
1.连接拒绝 网络闪断、Redis连接拒绝、连接溢出。
网友评论