【发布时间】:2017-10-22 00:13:37
【问题描述】:
Redis 中有关于有序集合项过期的建议(请参阅 https://groups.google.com/d/msg/redis-db/rXXMCLNkNSs/Bcbd5Ae12qQJ 和 https://quickleft.com/blog/how-to-create-and-expire-list-items-in-redis/),我尝试了使用 ZREMRANGEBYSCORE 和 ZREMRANGEBYRANK 命令使地理空间索引失效的工作方法(未删除任何内容)。
我成功使用了 ZREMRANGEBYLEX。
除了字符串之外,还有其他方法可以处理地理空间项目分数吗?
更新:
例如,如果一个项目的生存时间(ttl)是 30 秒,我将其添加为:
geoadd 1 -8.616021 41.154503 30
现在,假设工人在 40 秒后执行,我期待
zremrangebyscore 1 0 40
会做这项工作,但它不会,
ZREMRANGEBYLEX 1 [0 [40
做到了。为什么会出现这种行为?那就是说地理空间项的分数只支持字典操作?
【问题讨论】:
-
Geosets 是排序集,因此您可以使用任何
ZREM*命令删除元素。分数是坐标,使用 geohash 编码,因此虽然可以按分数和/或排名删除,但它没有多大意义。你想做什么? -
嗨,我想删除所有过期的项目。为此,我使用成员(分数)作为生存时间(ttl)值。请参阅更新的问题。谢谢。
标签: redis geospatial