背景
我们在排查业务的时候发现有个Redis现象比较奇怪。
每隔10秒钟左右,机器ping值就会明显升高,然后一会就恢复了,10秒钟以后又开始了。
除了机器ping值以外,我们登陆了redis,每一秒执行一次GET命令,发现响应时间也是同样的规律。
排查
通过slowlog 我们发现了一些端倪
1) 1) (integer) 2288477
2) (integer) 1648803007
3) (integer) 24753
4) 1) "SMEMBERS"
2) "PUSH.Task2Pid:S:10108863_PUSH"
2) 1) (integer) 2288476
2) (integer) 1648803007
3) (integer) 61168
4) 1) "SMEMBERS"
2) "PUSH.Task2Pid:S:10108885_PUSH"
3) 1) (integer) 2288475
2) (integer) 1648803007
3) (integer) 4219863
4) 1) "SMEMBERS"
2) "PUSH.Task2Pid:S:10108321_PUSH"
SMEMBERS命令,没见过,随手百度,我去
看来使用的不太合理呀。
改进
跟DBA同学请教了一下,推荐使用
SSCAN key cursor [MATCH pattern] [COUNT count]
改完之后效果(超过200ms才显示):
转载请注明:IPCPU-网络之路 » Redis优化-SMEMBERS导致每10秒就卡顿