如何使 Redis 中的 HyperLogLog 过期?
How to expire a HyperLogLog in Redis?
HyperLogLog占space的12KB。我在文档中没有看到有关何时释放存储空间的任何信息。
我目前的计划是打电话给 EXPIRE
every time I call PFADD
,但是我找不到太多关于过期 HLL 的讨论,所以我想知道我是否做错了...
我打算使用 HLL 实时计算我网站上的活跃访问者数量。我只想保留过去一小时的计数,释放比这更早的所有内容。
不,您不能使添加到 HLL 的项目过期。相反,EXPIRE
命令将使整个 HLL 过期。
为了实现您的目标,您可以每小时创建一个 HLL,并在一段时间后使整个 HLL 过期。
// for the 2019082200
PFADD user:2019082200 user1
// also set expiration for the HLL, and expire it after 10 hours
EXPIRE user:2019082200 36000
// add more users
PFADD user:2019082200 user2
// until the next hour, create a new HLL for the next hour
PFADD user:2019082201 user1
EXPIRE user:2019082201 36000
HyperLogLog占space的12KB。我在文档中没有看到有关何时释放存储空间的任何信息。
我目前的计划是打电话给 EXPIRE
every time I call PFADD
,但是我找不到太多关于过期 HLL 的讨论,所以我想知道我是否做错了...
我打算使用 HLL 实时计算我网站上的活跃访问者数量。我只想保留过去一小时的计数,释放比这更早的所有内容。
不,您不能使添加到 HLL 的项目过期。相反,EXPIRE
命令将使整个 HLL 过期。
为了实现您的目标,您可以每小时创建一个 HLL,并在一段时间后使整个 HLL 过期。
// for the 2019082200
PFADD user:2019082200 user1
// also set expiration for the HLL, and expire it after 10 hours
EXPIRE user:2019082200 36000
// add more users
PFADD user:2019082200 user2
// until the next hour, create a new HLL for the next hour
PFADD user:2019082201 user1
EXPIRE user:2019082201 36000