Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用Redis geoadd时设置expire_Redis_Geospatial - Fatal编程技术网

如何在使用Redis geoadd时设置expire

如何在使用Redis geoadd时设置expire,redis,geospatial,Redis,Geospatial,我正在Redis上使用新的地理空间功能。 我知道在幕后它在使用ZSET 我以这种方式添加新条目: GEOADD" "report-geo-set" "4.78335244" "32.07223969" "jossef" 如何向特定记录中添加expire(在我的示例中为“jossef”) 在我的片场 如果API不提供,是否有解决方法 谢谢, ray.遗憾的是,没有-Redis将使整个键过期,而不是它们各自数据结构中的值过期。地理哈希在顶级排序集上实现,不支持单个成员过期 您可以做的是维护一个额外

我正在Redis上使用新的地理空间功能。 我知道在幕后它在使用ZSET

我以这种方式添加新条目:

GEOADD" "report-geo-set" "4.78335244" "32.07223969" "jossef"
如何向特定记录中添加expire(在我的示例中为“jossef”)

在我的片场

如果API不提供,是否有解决方法

谢谢,
ray.

遗憾的是,没有-Redis将使整个键过期,而不是它们各自数据结构中的值过期。地理哈希在顶级排序集上实现,不支持单个成员过期


您可以做的是维护一个额外的排序集,并为其中的每个成员存储到期时间戳作为分数。然后,根据ZRANGEBYSCORE定期从中获取需要过期的成员,并“手动”从您的地理哈希中删除相应的成员。

Gotcha。如何按键从该地理空间中删除记录?在我的示例中,如何删除包含“jossef”
ZREM report geo set jossef
的记录?我将为您这样做,我将以json格式“{name':'jossef','timestamp':12121243424}”向成员名称添加时间戳,然后我可以解析json并删除我想要的任何内容。你认为呢?这至少会导致删除O(N),并且在事先不知道整个JSON的情况下,你将无法搜索成员的位置。