背景:代码本地调试通过,能够连接到开发服务器的redis,存储键值在过期的时候推送,但是在预生产服务器就无法进行推送。
经过调试发现可以将值存储进redis,但是在手动设置过期的时候,程序无法收到推送通知。
排错过程:
1.预生产服务仿照生产服务使用了两天服务器,开发环境只用到了一台,所以初步认为可能是推送通知无法从主服务器发送到次服务器[掉线通知的程序在次服务器,redis安装在主服务器],向技术支持询问以及技术架构说明原因后,说不是这个原因导致[这里不是特别明确,一开始我以为推送是通过某个连接发送到服务端,但是听技术架构描述好像不是这样,以后调研清楚]。
2.技术架构给出了第二种排错方式,链接到预生产服务器的reids 然后订阅频道,看事件过期能否收到推送。
流程如下:
1.开启两个远程连接 同时连接上redis redis-cli
2.查看是否开启了掉线推送 get notify-keyspace-events
如果是这样表示redis没有开启这个配置,需要手动开启。
set notify-keyspace-events Kx [此配置根据自己的需求来。官方文档:https://redis.io/topics/notifications
K K