首页 新闻 会员 周边

用户标签存储设计

0
悬赏园豆:20 [已解决问题] 解决于 2024-01-12 10:11

想到了用 bitmap,
比如有个标签叫 vip,现在有10个用户
那么这个标签的 bitmap 假设是 100100000 (假设从左到右 是 1开始)
那么表示 第1和第4个用户是 vip.
并且 redis 很好的支持了 bit 操作.
但是,如果要查询某个用户有哪些标签怎么办呢?
按照这种思路,
假设现在有3个标签:1.vip 2.美女 3.80后
如果某个用户的bitmap 是 101
这表示 这个用户是 80后vip
那么,我的疑问是
如果有100W个用户,
那不是要建 100W 个key.......
是不是我的思路错了...

热敷哥的主页 热敷哥 | 初学一级 | 园豆:178
提问于:2021-06-28 23:18
< >
分享
最佳答案
0

存储设计和查询根据情况可以分开设计;

  • 存储设计通常就是关系型数据库通常就是几对几的设计;
  • 查询设计就比如利用Redis、ES等更擅长查询的来设计
    存储成功后同步或异步的到查询设计的库中
收获园豆:20
慧☆星 | 大侠五级 |园豆:5640 | 2021-07-02 10:30
其他回答(1)
0

用关系型数据库不就可以了吗? 你用redis还不好满足你的要求,你需要正反向都查询数据,redis适合一个方向的数据快速查询

不知道风往哪儿吹 | 园豆:2035 (老鸟四级) | 2021-06-29 09:19

这种多对多的用数据库存,不管是横向存储,还是纵向存储,量大了,增删改都麻烦吖

支持(0) 反对(0) 热敷哥 | 园豆:178 (初学一级) | 2021-06-29 09:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册