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

2015-06-09 15:39:22 +08:00
 yxaaa123

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

3134 次点击
所在节点    PHP
7 条回复
fangjinmin
2015-06-09 15:54:58 +08:00
用的是同一个memcached服务器吗?key一致的话,应该没有问题。
cloudop
2015-06-09 16:35:17 +08:00
看下这里
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
2015-06-09 21:20:49 +08:00
@fangjinmin 用了集群
signifox
2015-06-09 21:23:59 +08:00
php和java自定义hash函数。 反正我司的python和C++是这么干的。
yxaaa123
2015-06-09 21:25:52 +08:00
@cloudop 非常感谢!虽然现在还没测试,但是似乎是我想要的方法!!
yxaaa123
2015-06-09 21:28:14 +08:00
@signifox php的同事表示不想动扩展上的代码,具体实现也不清楚,因为用的是默认设置,我想用该会有解决方案吧
zeayes
2015-06-09 21:37:02 +08:00
memcache客户端的一致hash算法要一致,不同语言下,保证同一个key,会落到同一个集群的同一台server上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/197232

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX