redis - 如何使 Redis 中的 HyperLogLog 过期?
问题描述
HyperLogLog占用 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
推荐阅读
- c - C char 指针获取特定字符
- c# - 如何从 asp.net web api 2 返回文件 (PDF)
- html - CSS 将 svg 粘贴在 div 的右侧边框上
- python - 使用子进程显示命令窗口并在命令运行后从窗口中获取文本
- c# - 带有 chat.postMessage 的图像附件 - Slack API
- python - 为什么在使用应用创建新列时会出现“试图在切片的副本上设置值”?
- python - 在 Scala 项目中使用 python 库
- angular - 角 httpClient
- docker - 如何使用 gitlab CI/CD 变量在 docker-compose.yml 中进行更改
- javascript - 重构具有相同对象属性值的数组