Ruby 如何同时使用scala和rails中的memcached(Amazon elasticache)?

Ruby 如何同时使用scala和rails中的memcached(Amazon elasticache)?,ruby,scala,amazon-web-services,memcached,Ruby,Scala,Amazon Web Services,Memcached,我试图让scala客户机和rails客户机与同一个aws memcached集群通信。我使用的scala/java客户端是,而RubyGem似乎为aws提供了最好的支持。不幸的是,对于相同的服务器,它们通常在不同的服务器上存储相同的密钥 有人知道一种简单的方法(除了重写散列函数外)让这两个节点无缝地互操作吗?最简单的方法是只使用集群中的一个节点 第二个选项:为所有节点设置相同的key=>值,并从任何节点读取 第三种选择(额外编码):使用gem调用rubyonrails,并为scala实现相同的节

我试图让scala客户机和rails客户机与同一个aws memcached集群通信。我使用的scala/java客户端是,而RubyGem似乎为aws提供了最好的支持。不幸的是,对于相同的服务器,它们通常在不同的服务器上存储相同的密钥


有人知道一种简单的方法(除了重写散列函数外)让这两个节点无缝地互操作吗?

最简单的方法是只使用集群中的一个节点

第二个选项:为所有节点设置相同的key=>值,并从任何节点读取


第三种选择(额外编码):使用gem调用rubyonrails,并为scala实现相同的节点检测算法。基本上,您需要修改包含节点信息的键名。

您使用的是
配置端点
还是
节点端点
?配置端点,但它们最终都会返回服务器列表,我检查了它们的顺序是否相同。从scala:
scala>cl.getAvailableServers res1:java.util.Collection[java.net.SocketAddress]=[/10.0.119:11211,/10.0.0.145:11211,/10.0.0.202:11211,/10.0.0.152:11211]
从ruby:
irb(main):007:0>cl.servers=>[“10.0.0.0.119:11211”,“10.0.145:11211”,“10.0.0.152:11211”]
从scala,我调用
cl.set(“1”,“1”)
cl.set(“2”,“2”)
。从ruby,只有一个出现(例如
cl.get(“2”)
nil
).Node检测很好——它们都获得相同的服务器环。我最后挖掘了更多信息,发现dalli使用crc32作为基本哈希,spy.net.memcached使用md5。我将尝试修复,如果修复,我将报告。