我在Redis有一个特定的缓存系统。如何使用redis保持密钥,如果不使用则过期?
该系统的内容非常不稳定,并且值始终被添加和删除。我想尽可能将“已用”键保留在内存中,同时让旧键过期。 每个请求可能需要缓存中的数百个密钥。
我知道我可以设置一个“足够长”的过期时间,并且只处理Cache未命中,但是我希望尽可能少地错过。
目前我正在做这样的事情,当我写入/读取到缓存中(伪代码)
# write
write(key, value)
expire(key, ttl)
# read
read(key)
expire(key, ttl)
我可以优化通过流水线的读取。
现在看起来这还不是最好的方法。 有人可以给我一个更好的策略吗?
我认为你目前的做法是最好的。从http://redis.io/commands/expire - >刷新到期,*可以使用作为已有过期集合的键的参数调用EXPIRE。在这种情况下,密钥的生存时间更新为新值。* – fedorqui
正是您应该这样做(但一定要使用流水线)。 –