我们的服务器上有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的密钥上设置了超时。但也许有些东西会设置默认超时?
我该如何调试?我在哪里看?
答案 0 :(得分:2)
请查看Redis配置:
TaskScheduler timer = new TaskScheduler();
timer.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
time.setText(simpleDateFormat.format(GamePlay.instance().getLevelTime()));
}
},1000);
确保maxmemory对于您的数据集足够大,否则将使用specified maxmemory-policy自动删除键。