首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
广告
V2EX
›
问与答
关于 bitmap 持久化的一点疑惑
funky
·
2018-06-30 15:38:25 +08:00
· 2665 次点击
这是一个创建于 2480 天前的主题,其中的信息可能已经有所发展或是发生改变。
现在情况是采用 redis bitmap 作为分析用户维度的一种手段。key 是表示该维度,value 表示 uid 的 bitmap
但是随着时间推移,bitmap 会越来越多,是否能将 bitmap 持久化之后转存文件而不占用 redis 内存,需要查询的时候再从文件 load 进内存?
bitmap
持久化
Redis
维度
7 条回复
•
2018-06-30 19:28:59 +08:00
1
funky
OP
2018-06-30 15:39:40 +08:00
或者说那种数据库支持这种数据结构?
2
teleme
2018-06-30 16:08:54 +08:00 via Android
@
funky
按照这个设计思路内存应该足够用了。因为每个 bitmap 的长度是最大的 uid。总内存占用是非常可控的。
3
teleme
2018-06-30 16:12:37 +08:00 via Android
@
funky
持久化的话,bitmap 读成 buffer,然后 gzip 一下当文件存
4
funky
OP
2018-06-30 18:15:06 +08:00
@
teleme
是的,但是架不住 N 多个需要分析的维度,每个 bitmap 占不到 1M,
5
ywind
2018-06-30 19:20:50 +08:00 via Android
@
funky
能接受有误差的话,可以考虑一下布隆过滤器,数据可以更小一点。
6
des
2018-06-30 19:22:06 +08:00 via Android
直接存数据库 blob
postgre 应该有插件可以直接读,冷数据这样存是个不错的主意
还有,直接存文件不是个好主意
7
teleme
2018-06-30 19:28:59 +08:00
@
funky
我的一点看法是,维度是不是需要考虑时间单位,如果有时效性的话,bitmap key 设置 expire 这样,redis 可以把内存维护得非常稳定。历史冷数据的持久化,可以考虑 S3 或者 OSS 这类云服务。
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
1291 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms ·
UTC 23:40
·
PVG 07:40
·
LAX 16:40
·
JFK 19:40
Developed with
CodeLauncher
♥ Do have faith in what you're doing.