关于 bitmap 持久化的一点疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
funky
V2EX    问与答

关于 bitmap 持久化的一点疑惑

  •  
  •   funky 2018-06-30 15:38:25 +08:00 3000 次点击
    这是一个创建于 2736 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在情况是采用 redis bitmap 作为分析用户维度的一种手段。key 是表示该维度,value 表示 uid 的 bitmap
    但是随着时间推移,bitmap 会越来越多,是否能将 bitmap 持久化之后转存文件而不占用 redis 内存,需要查询的时候再从文件 load 进内存?
    7 条回复    2018-06-30 19:28:59 +08:00
    funky
        1
    funky  
    OP
       2018-06-30 15:39:40 +08:00
    或者说那种数据库支持这种数据结构?
    teleme
        2
    teleme  
       2018-06-30 16:08:54 +08:00 via Android
    @funky 按照这个设计思路内存应该足够用了。因为每个 bitmap 的长度是最大的 uid。总内存占用是非常可控的。
    teleme
        3
    teleme  
       2018-06-30 16:12:37 +08:00 via Android
    @funky 持久化的话,bitmap 读成 buffer,然后 gzip 一下当文件存
    funky
        4
    funky  
    OP
       2018-06-30 18:15:06 +08:00
    @teleme 是的,但是架不住 N 多个需要分析的维度,每个 bitmap 占不到 1M,
    ywind
        5
    ywind  
       2018-06-30 19:20:50 +08:00 via Android
    @funky 能接受有误差的话,可以考虑一下布隆过滤器,数据可以更小一点。
    des
        6
    des  
       2018-06-30 19:22:06 +08:00 via Android
    直接存数据库 blob
    postgre 应该有插件可以直接读,冷数据这样存是个不错的主意

    还有,直接存文件不是个好主意
    teleme
        7
    teleme  
       2018-06-30 19:28:59 +08:00
    @funky 我的一点看法是,维度是不是需要考虑时间单位,如果有时效性的话,bitmap key 设置 expire 这样,redis 可以把内存维护得非常稳定。历史冷数据的持久化,可以考虑 S3 或者 OSS 这类云服务。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5272 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 09:01 PVG 17:01 LAX 01:01 JFK 04:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86