我正在使用 com.whalin/Memcached-Java-Client 库版本 3.0.2。默认slab大小为1 MB,我使用-I命令启动memcached服务器- memcached -d -u nobody -m 4096 127.0.0.1 -p 11211 -I 5242880
。Memcached 服务器版本为 1.4.26。我有一个遗留系统,我想将 memcached 平板大小增加到 5 MB。当我尝试在 memcached 中添加/设置超过 1 MB 的对象大小时,我遇到了异常
Dec 11, 2018 12:13:31 PM com.schooner.MemCached.BinaryClient set
SEVERE: ++++ exception thrown while writing bytes to server on set
Dec 11, 2018 12:13:31 PM com.schooner.MemCached.BinaryClient set
SEVERE: Connection reset by peer
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:51)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466)
at com.schooner.MemCached.SockOutputStream.writeToChannel(Unknown Source)
at com.schooner.MemCached.SockOutputStream.write(Unknown Source)
我尝试将 TransCoder 设置为类似于 xmemcached 客户端,但 whalin 客户端有不同的实现。
实现 WhalinMemcachedJavaClient 示例:
private static void implementWhalinMemcachedJavaClient() {
String[] servers = { "127.0.0.1:11211" };
SockIOPool sockIOPool = SockIOPool.getInstance("SanTest");
sockIOPool.setMinConn(2);
sockIOPool.setMaxConn(20);
sockIOPool.setServers(servers);
sockIOPool.setFailover(true);
sockIOPool.setInitConn(30);
sockIOPool.setMaintSleep(90);
sockIOPool.setSocketTO(2000);
sockIOPool.setAliveCheck(true);
sockIOPool.setHashingAlg(SockIOPool.NATIVE_HASH);
sockIOPool.initialize();
MemCachedClient whalinClient = new MemCachedClient("SanTest", true);
//MemCachedClient whalinClient = new MemCachedClient("SanTest");
whalinClient.add("Result", "Success");
System.out.println("get Result=" + whalinClient.get("Result"));
}
我想将平板大小增加到 5MB。请告知 whalin memcached 客户端中是否有任何选项可以将平板大小从 1 MB 增加到 5 MB。