回答
对不起,这是不可能的,如上述评论中所述。在Redis中,创建自己的索引以支持您的访问模式非常重要。
提示:您应该做的是使用所有新键或修改键创建排序集(ZADD
),并将分数设置为时间戳。通过这种方式,您可以轻松地在一段时间内使用ZRANGEBYSCORE
获取密钥。
如果您希望过期现有的密钥get all keys(昂贵),并使用EXPIRE
命令为每个密钥设置一个TTL。
有点晚了,但请查看OBJECT命令。在那里你会发现物体空闲时间(10秒分辨率)。它用于调试目的,但仍然可以是一个很好的解决方案,以满足您的需求。
有什么办法从StackExchange.Redis.Extention Api执行这个命令? – 2016-07-14 07:15:29
你NOW使用过期吗?如果是这样,如果没有设置TTL,则可以遍历所有密钥,然后添加一个。
Python的例子:
for key in redis.keys('*'):
if redis.ttl(key) == -1:
redis.expire(key, 60 * 60 * 24 * 7)
# This would clear them out in a week
编辑 作为@kouton指出,使用扫描通过按键在生产,看到上讨论:SCAN vs KEYS performance in Redis
千万不要在生产中使用'keys';使用'scan'代替。 – kouton 2017-11-23 04:52:24
- 1. 在redis中,我如何删除密钥?
- 2. 春季Redis删除不删除密钥
- 3. 如何自动删除超过3个月的文件
- 4. Redis在BGSAVE后立即删除我的所有密钥
- 5. redis如何过期密钥?
- 6. Redis服务器从dump.rdb加载后删除所有密钥
- 7. 从redis删除键/值 - 幻影密钥没有删除
- 8. 如何使用php redis获取redis中的所有密钥?
- 9. AngularFire/Firebase - 如何删除超过一层的密钥?
- 10. 如何通过redis-cli显示所有密钥?
- 11. Redis不删除会话密钥
- 12. 如何使用redis模板从Redis获取所有密钥
- 13. 在Redis中删除所有密钥的最佳解决方案排除了定制用户密钥?
- 14. jquery $ .totalStorage - 删除所有密钥
- 15. 如何删除磁盘上的Redis密钥?
- 16. 如何删除r中没有超过3个值的行?
- 17. 删除行数超过3个月(EPOCH TIME)
- 18. 如何通过TTL查找redis密钥
- 19. 如何删除HSTORE密钥?
- 20. Node_redis - 如何删除密钥?
- 21. flushdb不清除redis中的所有密钥?
- 22. 如何删除超过50个计数的所有行?
- 23. Spring Data Redis过期密钥
- 24. 如何保留Redis中的所有密钥
- 25. Redis - 如何列出数据库中的所有密钥?
- 26. 在到期时间后,redis密钥没有被删除
- 27. Redis命令获取Redis集群上的所有可用密钥?
- 28. 如何使用JQ删除所有嵌套密钥
- 29. 如何从JSON中删除所有密钥?
- 30. 删除所有超过5天的行
不幸的是,这是不可能的。但是您可以根据其中关联的数据删除Redis密钥。 – 2013-05-13 10:13:45
@LeonidBeschastny谢谢。这是因为密钥没有以有序方式存储或保存日期? – Christoffer 2013-05-13 11:04:16
除非您自己将其保存在与其关联的数据中,否则无法获取创建密钥的时间。至于最老的密钥,Redis针对快速键值访问进行了优化,因此它将其数据存储为散列表。 – 2013-05-13 11:20:13