V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ke1e
V2EX  ›  程序员

如何去维护大量用户 ID?

  •  
  •   ke1e · Aug 17, 2017 · 5026 views
    This topic created in 3179 days ago, the information mentioned may be changed or developed.

    各位公司是如何维护大量用户 ID 的?

    因为很多地方查表都会用到用户 id,所以将用户的 id 单独维护起来,如果遇到需要对所有用户进行操作的时候,只需去遍历维护的 id 列表,然后再去牵扯到的表去查询即可。

    头说不考虑 redis,目前的方案是想去用文件存储,各位有啥好办法么?

    只需要方便遍历和添加新用户 id, 假设有 4000w Id

    26 replies    2017-08-18 14:21:31 +08:00
    maemual
        1
    maemual  
       Aug 17, 2017
    “需要对所有用户进行操作”,这个需求不是很常见啊。
    wilsonwen
        2
    wilsonwen  
       Aug 17, 2017
    为什么不考虑 redis
    idblife
        3
    idblife  
       Aug 17, 2017
    用户 id 作为主键或者唯一约束不就行了,才 4000 万怕啥
    NaVient
        4
    NaVient  
       Aug 17, 2017
    对所有用户进行操作的信息应该尽量放在用户基础表里才对,而且 4000 万的数据量说实话如果不是性能到了极限瓶颈,不是特别需要刻意的重构吧,当然如果你能说服领导当我没说
    paradoxs
        5
    paradoxs  
       Aug 17, 2017
    不考虑 redis 的头, 留着过夜?
    tabris17
        6
    tabris17  
       Aug 17, 2017
    4000 万又不多,自增有什么问题?
    plprapper
        7
    plprapper  
       Aug 17, 2017
    没看懂这个“维护” 是啥意思

    是要在内存里加载? 还是别的什么
    crysislinux
        8
    crysislinux  
       Aug 17, 2017 via Android
    比如群发通知?
    noNOno
        9
    noNOno  
       Aug 17, 2017
    用户 ID 不用修改吧,只有插入和查询。可以加一些常用的条件字段到用户表,然后给上索引,更快的遍历想要的用户 ID
    noNOno
        10
    noNOno  
       Aug 17, 2017
    头考虑下 hbase 不
    celavi
        11
    celavi  
       Aug 17, 2017
    我也觉得这个操作能不能具体化一点?
    misaka19000
        12
    misaka19000  
       Aug 17, 2017 via Android
    4000w 和大量还是有差距的
    ke1e
        14
    ke1e  
    OP
       Aug 17, 2017
    @noNOno 对,不需要修改,只有插入和查询,每次查询估计都是要全部查询的
    ke1e
        15
    ke1e  
    OP
       Aug 17, 2017
    @crysislinux 嗯呐 有这个需求
    ke1e
        16
    ke1e  
    OP
       Aug 17, 2017
    @plprapper 就是简单的迭代,添加。。不知如何快速的迭代
    ke1e
        17
    ke1e  
    OP
       Aug 17, 2017
    @idblife 因为有可能牵扯到多个表的操作
    ke1e
        18
    ke1e  
    OP
       Aug 17, 2017
    @NaVient 但是有些用户行为数据就没办法放在基础表里了
    ratazzi
        19
    ratazzi  
       Aug 17, 2017 via iPhone
    如果是连续递增的数字 id 用 bitarray ?
    ke1e
        20
    ke1e  
    OP
       Aug 17, 2017 via Android
    @ratazzi 用的 mongo 所以是 objectId
    sivacohan
        21
    sivacohan  
    PRO
       Aug 17, 2017 via Android   ❤️ 1
    LDAP ?
    ke1e
        22
    ke1e  
    OP
       Aug 17, 2017 via Android
    @sivacohan 我去研究下,感谢老哥
    iyangyuan
        23
    iyangyuan  
       Aug 18, 2017 via iPhone
    每个用户按 8 字节算,4000 万用户 300m 左右空间,放内存绰绰有余。
    用文件存储绝逼是坏主意,除非你们操控 io 的能力超越数据库。
    plprapper
        24
    plprapper  
       Aug 18, 2017   ❤️ 1
    Roaringbitmap 这里的吧 也许是你想要的东西
    ke1e
        25
    ke1e  
    OP
       Aug 18, 2017 via Android
    @iyangyuan 是呀,还要考虑同步问题
    ke1e
        26
    ke1e  
    OP
       Aug 18, 2017 via Android
    @plprapper 好的老哥,我研究下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2427 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.