我目前正在为我的应用程序开发缓存软件,并考虑过Redis(地理空间)。
我的缓存应允许按地理位置(半径内的项目)以及时间(在区域AND中发布的项目,例如最近一小时或一天)查询数据。我大概会在一周左右的时间后使缓存的数据过期。
据我了解,对于地理位置和基于时间的查询,建议使用排序集(在地理位置的情况下为GEOADD)。
从结构上讲,我不确定如何使用Redis解决此问题,因为它只是键值存储,而二级索引似乎并不简单。
我一直在上网,但没有找到答案。
这有可能吗?
答案 0 :(得分:3)
要使用Redis做到这一点,您确实需要两个有序集-一个用于存储地理数据,另一个用于存储时间戳。
此示例显示了一种实现方法:
>=
在这种情况下,应通过扫描“时间戳”排序集中的旧条目并将它们从所有相关数据结构中删除,来定期进行过期。