redis - 什么可能会从 Redis 中删除键?

标签 redis

我们的服务器上有 3 个应用程序。他们通过 Redis 相互交谈。 Redis 是所有通信的总线。

我们服务器上的某些东西错误地从 Redis 中删除了键。我正在尝试找出问题所在。对于每个应用程序,我都将代码下载到我的机器上,然后尝试:

grep -iR "flush" *
grep -iR "del" *

其中两个应用程序没有“flush”和“del”。只有一个应用程序有“del”。所以我找到了它的 PID 和:

kill -9 2312

我还执行了“ps aux”以确保该应用已关闭。

其他 2 个应用只有:

hset
hget
hmgetall

Redis 中键的消失是不稳定的。有些按键会持续几分钟,甚至几小时。其他人迅速消失。

据我所知,没有开发人员在 Redis 中为键设置超时。但也许有些东西设置了默认超时?

我该如何调试它?我看哪里?

最佳答案

请看一下 Redis 配置:

config get maxmemory*

请确保 maxmemory 对您的数据集足够大,否则 key 将自动与 specified maxmemory-policy 一起删除.

关于redis - 什么可能会从 Redis 中删除键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32060910/

相关文章:

python - Docker 上的 Redis : Error 111 connecting to 0. 0.0.0 :6379. 连接被拒绝

redis - redis `expires` 输出中的 `info keyspace` 是什么意思?

c# - 在 Redis Azure 中存储更大 (2MB) 的对象

redis - 无法在redis中设置过期时间 `SET`

node.js - 在 Node js 中缓存的更好方法

node.js - REDIS - 创建有意义的键以减少查询

java - Spring RedisConnectionFactory 事务不返回到池的连接,然后在用尽时阻塞

ruby - 在 Redis 中为 Ruby 重新创建 zdiffstore

python - Redis 在给定分数附近获取用户集

ruby - 在 kubernetes 上使用 sentinel 连接到 redis 集群