caching - 带有过期条目的 Redis 列表?

标签 caching redis

我正在寻找一种方法来为用户存储项目列表,该列表将在 24 小时内过期。有没有办法使用 Redis 来完成此操作?我在考虑只使用列表并为每个单独的项目设置过期时间,有没有更好的方法?

最佳答案

我使用:
ZADD - 向有序集中添加新的唯一值。
ZRANGE - 从集合中获取所有按分数排序的当前值。 (ZREMRANGEBYSCORE 已弃用)
ZREMRANGEBYSCORE - 从集合中删除分数之间的所有键。

在此解决方案中,分数 = 时间戳

例如:
3 值插入:

ZADD mykey 160 val1        // 1
ZADD mykey 161 val2        // 1
ZADD mykey 120 val3        // 1

获取分数之间的排序值(介于 -infinity 到 400 之间):

ZRANGE mykey -inf 400 BYSCORE      // ['val3', 'val1', 'val2'] 

删除值(介于 -infinity 到 121 之间)- val3 将被删除:

ZREMRANGEBYSCORE mykey -inf 121      // 1

(再次)- 获取得分之间的排序值(介于 -infinity 到 400 之间):

ZRANGE mykey -inf 400 BYSCORE       // ['val1', 'val2'] 

关于caching - 带有过期条目的 Redis 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044721/

相关文章:

amazon-web-services - 连接到 AWS EC2 上的 redis 服务器

java - 过期的 Redisson key 在 Redis Cli 中仍然可见

php - EC2 集群上的 Nginx 扩展和瓶颈识别

google-chrome - Chrome - ERR_CACHE_MISS

caching - 帮助我了解 Entity Framework 4 延迟加载的缓存

php - file_get_contents 没有缓存?

linux - RedHat Redis Cluster端口权限问题

ios - SDWebImage IUTableView setBackgroundImage

php - 如何通过 Yii 中的配置禁用缓存?

c# - 如何将redis中的数据保存到磁盘中的文件并读回redis?