代码之家  ›  专栏  ›  技术社区  ›  Peter Sankauskas

不同语言的memcache客户端哈希是否相同?

  •  7
  • Peter Sankauskas  · 技术社区  · 16 年前

    我们希望在Java应用程序中进行一些处理,将结果存储在我们的MyC缓存服务器池中,并在PHP中使用MyCask读取它。

    这很容易尝试,但我想我会问,看看是否有其他人做过这件事。

    只要Java和PHP客户端都连接到同一个MyC缓存服务器池,两个客户端都会散列到同一个服务器位置,使得PHP的检索成为可能吗?

    3 回复  |  直到 9 年前
        1
  •  4
  •   Frank Farmer    16 年前

    不,不是所有客户机都以相同的方式散列。作为这一点的证据,您将看到一些客户提供“一致的散列”,而其他客户则不提供。

    简而言之,memcached客户机可以使用任何他们喜欢的哈希算法。没有官方标准。

    PHP客户端支持 a variety of hashing algorithms 因此,有可能配置它来使用与Java库使用的相同的ALGO(看起来好像有几个在那里——你在使用什么?)很明显,你会想做大量的测试。

        2
  •  1
  •   stivlo    14 年前

    允许跨语言访问的另一种可能是不依赖语言序列化,而是以JSON格式将对象存储为文本字符串。

    我个人用 Gson 对于Java和JSONYEnEngEnter,JSONER在PHP中解码。

        3
  •  0
  •   Gank    9 年前

    吡啶羧甲基纤维素钠

    import pylibmc
    
    mc = pylibmc.Client(["127.0.0.1"], binary=True,
                       behaviors={"tcp_nodelay": True,
                                   "ketama": True})
    
    key="someKey"
    i=0
    while True:
        #mc.set(key, str(i))
        value = mc.get(key)
        print(value)
        sleep(1)
        i+=1