V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lixiaohan
V2EX  ›  程序员

memcache 如何处理大并发的写操作

  •  
  •   lixiaohan · 2016-03-10 14:16:23 +08:00 · 4789 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    加入 我现在有 100 台 memcache 机器, 我现在有亿级的客户端写入请求, 请问 我如何来处理这些写入请求,从而做到数据一致性?

    11 条回复    2016-03-11 11:23:18 +08:00
    zqwcrystal
        1
    zqwcrystal  
       2016-03-10 14:29:28 +08:00
    做集群,压力分发到 100 台上,每台存储的数据不一样,不会有一致性问题
    lixiaohan
        2
    lixiaohan  
    OP
       2016-03-10 14:48:00 +08:00
    @zqwcrystal 那这样 我读的时候 就会数据不一致啊,每台数据不一样
    zhicheng
        3
    zhicheng  
       2016-03-10 14:50:33 +08:00   ❤️ 2
    这个时候丢给你一个关键字就够了。

    一致哈希
    https://zh.wikipedia.org/wiki/%E4%B8%80%E8%87%B4%E5%93%88%E5%B8%8C
    yahoo21cn
        4
    yahoo21cn  
       2016-03-10 14:54:06 +08:00
    我举个栗子,你写入的是用户数据,用户编号是自增整数,那么单数存储 1 号 memcache ,双数存入 2 号 memcache 。程序里需要读取数据的时候,也是单数用户去 1 号服务器取,双数用户去 2 号服务器取。如果用户 id 是 uuid 这类字符串,可以取首字母 asii 码。这是最简易的散列。
    建议去看 3 楼的哈希一致,是当前比较流行的散列方法
    likuku
        5
    likuku  
       2016-03-10 14:58:30 +08:00
    LZ 你想要的是 100 台 memcache 可以并发写任意机器,也可以并发读任意机器,且从任意机器里都可以抓到全部数据?

    ( 100 台读写,且 100 台之间都一致性同步)
    mhycy
        6
    mhycy  
       2016-03-10 15:03:33 +08:00
    为啥亿级的数据用的是 memcache 而且要保证一致性?
    感觉 memcache 并不是做这事的最佳选择
    tabris17
        7
    tabris17  
       2016-03-10 15:08:32 +08:00
    一致性哈希不是已经在 memcache 客户端协议上实现了么。

    除非你几亿请求同时写入一个 key ,否则完全不是问题
    knightdf
        8
    knightdf  
       2016-03-10 15:20:40 +08:00
    你的问题和大并发写并没有什么关系。。
    zqwcrystal
        9
    zqwcrystal  
       2016-03-10 15:32:20 +08:00
    @lixiaohan 你根据请求来源判断去读对应的机器上的数据就行了
    firefox12
        10
    firefox12  
       2016-03-10 18:28:58 +08:00 via iPhone
    为什么总是上来就是上亿呢?
    没有请求大小 请求频率 数据冷热 就来问这种问题就是耍流氓

    孩子 你也不会问了就掌握亿级用户的支持能力的。最好从实践 1 万开始
    lixiaohan
        11
    lixiaohan  
    OP
       2016-03-11 11:23:18 +08:00
    @firefox12 sorry 是我夸张了点 ,其实我的本意是 尽量多考虑一些事情 ,不好意思
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:25 · PVG 12:25 · LAX 20:25 · JFK 23:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.