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

有人做过 php 和 java 的 memcached 共享吗? hash 一致性怎么实现的?

  •  
  •   yxaaa123 · 2015-06-09 15:39:22 +08:00 · 3142 次点击
    这是一个创建于 3457 天前的主题,其中的信息可能已经有所发展或是发生改变。

    php用memcached,java用xmemcached,但是一直没办法命中一致。

    7 条回复    2015-06-09 21:37:02 +08:00
    fangjinmin
        1
    fangjinmin  
       2015-06-09 15:54:58 +08:00
    用的是同一个memcached服务器吗?key一致的话,应该没有问题。
    cloudop
        2
    cloudop  
       2015-06-09 16:35:17 +08:00   ❤️ 1
    看下这里
    https://code.google.com/p/xmemcached/source/browse/trunk/src/main/java/net/rubyeye/xmemcached/HashAlgorithm.java?r=801
    里面的
    ONE_AT_A_TIME。说明xmemcached可以兼容php用的hash算法
    PHP的hash算法是(Jenkins one-at-a-time) item key hashing algorithm
    还可以参考http://stackoverflow.com/questions/19008990/items-set-with-spymemcached-cannot-be-fetched-with-php-memcached
    yxaaa123
        3
    yxaaa123  
    OP
       2015-06-09 21:20:49 +08:00
    @fangjinmin 用了集群
    signifox
        4
    signifox  
       2015-06-09 21:23:59 +08:00
    php和java自定义hash函数。 反正我司的python和C++是这么干的。
    yxaaa123
        5
    yxaaa123  
    OP
       2015-06-09 21:25:52 +08:00
    @cloudop 非常感谢!虽然现在还没测试,但是似乎是我想要的方法!!
    yxaaa123
        6
    yxaaa123  
    OP
       2015-06-09 21:28:14 +08:00
    @signifox php的同事表示不想动扩展上的代码,具体实现也不清楚,因为用的是默认设置,我想用该会有解决方案吧
    zeayes
        7
    zeayes  
       2015-06-09 21:37:02 +08:00
    memcache客户端的一致hash算法要一致,不同语言下,保证同一个key,会落到同一个集群的同一台server上。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:10 · PVG 17:10 · LAX 01:10 · JFK 04:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.