redis过期密钥

cidc1ykv  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(514)

我有一些我的球员的排行榜数据。排行榜有每日、每周和每月的统计数据。因此,我使用redis的过期功能排行榜,但有一件事我想知道。是否有任何方法使密钥过期,但如果密钥已经过期,它将不会接触它。如果该方法不存在,那么检查和设置它的性能更友好的方法是什么?我有很多钥匙要检查和设置,我不想减慢进程。
代码

try (Jedis resource = redisManager.getResource()) {
    Pipeline pipeline = resource.pipelined();
    pipeline.multi();

    for (PlayerData playerData : playerDataList) {
        if (playerData.getKill() > 0) {
            pipeline.zincrby("game.kill.total", playerData.getKill(), playerData.getId());
            pipeline.zincrby("game.kill.monthly", playerData.getKill(), playerData.getId());
            pipeline.zincrby("game.kill.weekly", playerData.getKill(), playerData.getId());
        }
    }

    //if the key doesn't have expire date, add expire date to key.

    pipeline.exec();
}
pcrecxhr

pcrecxhr1#

如果您输入的redis已过期,redis将通过定期删除它们在内部进行处理。核对公文
redis公司 exist api可以帮助检查密钥是否存在。javaspring中的doc模板haskeyapi可以提供帮助。
处理redis密钥的最佳实践是
检查密钥是否存在,如果存在,可能会使其过期或使用
设置键值
设置过期时间。始终设置过期时间,否则,您的redis可能很快就会耗尽内存。
如果您在多线程中使用redis,那就另当别论了。你必须使用redis锁。

相关问题