【问题描述】PHP读取redis中存在值的key,偶发读取不到的情况
【问题原因】PHP-Redis长连接导致
- PHP和Redis的长连接由PHP-FPM保持,当PHP程序存在切换RedisDB的时,会导致长连接里面的DB被切换到新的DB。
- PHP-FPM多进程时,部分进程切换到新的DB,部分DB还是为0(所以出现虽然key有值,但偶尔读取不到值。因为读的DB不对)
【解决方案】下面2个都可以
- 不要使用Redis长连接
- 让需要切换RedisDB的程序和其它不切换的RedisDB的程序分开使用不同Redis
|
请发表评论