redis - 如何使 Redis 中的 HyperLogLog 过期?

标签 redis hyperloglog

HyperLogLog s占用12KB空间。我在文档中没有看到有关何时释放该存储空间的任何信息。

我目前的计划是调用EXPIRE每次我打电话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

关于redis - 如何使 Redis 中的 HyperLogLog 过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600414/

相关文章:

laravel - Redis 未在 Laravel 5.1 中接收广播事件

linux - Redisused_memory_rss 大于配置集 'maxmemory' 吗?

python - 向 rabbitmq 发送 celery 任务消息

database - HyperLogLog 算法如何工作?

integration-testing - 使用 HyperLogLog 对代码进行可靠的集成测试?

testing - 您如何测试 Hyperloglog 的实现?

database - 具有单一哈希函数的 LogLog 算法如何工作

django - 如何在停止Redis然后稍后启动它后继续执行 celery 队列?

php - 两个列表之间的 Redis 差异?

azure - 如何将 hyperloglog key 迁移到 azure redis