V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yxaaa123
V2EX  ›  PHP

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

  •  
  •   yxaaa123 · Jun 9, 2015 · 3715 views
    This topic created in 3989 days ago, the information mentioned may be changed or developed.

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

    7 replies    2015-06-09 21:37:02 +08:00
    fangjinmin
        1
    fangjinmin  
       Jun 9, 2015
    用的是同一个memcached服务器吗?key一致的话,应该没有问题。
    cloudop
        2
    cloudop  
       Jun 9, 2015   ❤️ 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
       Jun 9, 2015
    @fangjinmin 用了集群
    signifox
        4
    signifox  
       Jun 9, 2015
    php和java自定义hash函数。 反正我司的python和C++是这么干的。
    yxaaa123
        5
    yxaaa123  
    OP
       Jun 9, 2015
    @cloudop 非常感谢!虽然现在还没测试,但是似乎是我想要的方法!!
    yxaaa123
        6
    yxaaa123  
    OP
       Jun 9, 2015
    @signifox php的同事表示不想动扩展上的代码,具体实现也不清楚,因为用的是默认设置,我想用该会有解决方案吧
    zeayes
        7
    zeayes  
       Jun 9, 2015
    memcache客户端的一致hash算法要一致,不同语言下,保证同一个key,会落到同一个集群的同一台server上。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5700 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 09:08 · PVG 17:08 · LAX 02:08 · JFK 05:08
    ♥ Do have faith in what you're doing.