Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个Memcached服务器用于多个客户端_Java_Coldfusion_Memcached_Spymemcached - Fatal编程技术网

Java 一个Memcached服务器用于多个客户端

Java 一个Memcached服务器用于多个客户端,java,coldfusion,memcached,spymemcached,Java,Coldfusion,Memcached,Spymemcached,我们有两个应用服务器coldfusion/Java和一个memcached。 我想这样设置我的memcached服务器/客户端。当服务器1为密钥添加值时,它也应可用于服务器2。反过来也是 现在,当我在服务器1上为密钥添加值时,它在第二台服务器上不可读或不可编辑。 如何设置它 我使用它作为客户端库 感谢您的帮助或者: A.对于同一对象,服务器1和服务器2使用的密钥不同 或 B.服务器1和服务器2的memcached实例不同 或 C.您给了对象如此短的生命周期,以至于它在其他服务器能够利用它之前就过

我们有两个应用服务器coldfusion/Java和一个memcached。 我想这样设置我的memcached服务器/客户端。当服务器1为密钥添加值时,它也应可用于服务器2。反过来也是

现在,当我在服务器1上为密钥添加值时,它在第二台服务器上不可读或不可编辑。 如何设置它

我使用它作为客户端库

感谢您的帮助

或者:

A.对于同一对象,服务器1和服务器2使用的密钥不同

B.服务器1和服务器2的memcached实例不同


C.您给了对象如此短的生命周期,以至于它在其他服务器能够利用它之前就过期了。

看起来这是一个相当年轻的Memcached实现,这可能是一个bug。您可以在此处提交:

如果您不认为这是一个bug,可以发布一段调用Memcached的代码吗


另外,请记住,memcached应该被视为不可靠的非持久性存储。您应该编写代码,就好像您希望它停止运行,甚至可能返回空结果一样。

所有设置都是正确的,但是设置复杂的值结构或数组会使其他服务器无法使用这些键/值对。 现在,我将所有值序列化为JSON,效果很好。可能在Memcached版本1.4.5中它被更改了,但是对于版本1.2.6,序列化值是修复它的好方法


A-密钥是相同的B-只有一个memcache实例C-生命周期是3600,值在第一台服务器上可用我断言某个地方有错误。假设您使用的是Memcached和Spymemcached的稳定版本,这不会留下太多的回旋余地。我会退后一步,回到最基本的方面。创建一个简单的Java类,该类具有插入/检索值的main。在不同的机器上运行它,以确保它工作正常。使用Wireshark绝对确保传递的是相同的密钥。使用memcached可用的命令行工具检查内容。例如,从两个服务器和运行统计项中插入相同的值。它有1个键还是2个键?只有一个ke,现在是“测试”。我在一台服务器上插入值,在另一台服务器上插入值为“未定义”。当我尝试使用“附加到其他服务器”覆盖它时,我收到状态“OperationStatus success=false:NOT_STORED”。您确定他们正在与同一个实例通信吗?这听起来不对,只有一个例子。周一我将在更多的服务器上测试它。我认为memcached服务器的版本对于当前版本的SpymeCached客户端来说可能太旧了。我知道服务器上的coldfusion版本不同,这可能是一个问题。这可能是旧版本memcached engine中的错误吗??因为我在windows下使用它,如果我记得清楚的话,我发现唯一可用的版本是1.2.4。首先,我想指出,memcached和spymemcached都非常可靠,每天都有成千上万的人使用。您还试图做一些非常基本的工作,这些工作在测试过程中很容易被捕获,或者SpymeCached或memcached,这让我相信您的代码中存在错误。你能把代码贴在这里吗?另外,如果您使用的是2.7系列SpymeMached,则可以从返回给您的Future中调用getStatus函数,查看请求中是否存在错误。