mencached实例化多个对象的时候报错:
com.danga.MemCached.SockIOPool Wed Nov 11 09:32:16 CST 2020 - ++++ trying to initialize an already initialized pool
报错原因:
多个对象使用了同一个链接池的原因,因为创建连接池不给名称的话就是默认的default所以就算再次实例化对象也是走了同一个连接池
SockIOPool pool = SockIOPool.getInstance();
解决方案:
创建连接池的时候给连接池一个名称
SockIOPool pool = SockIOPool.getInstance("mcc_router");
注意一点
memcachedClient在set连接池的时候这个名字要和创建的连接池名称对应的上
memcachedClient.setPoolName("mcc_router");
说一下为什么要在同一个项目中实例化多次memcached呢,因为我门这个项目是后端项目主要是公司内部员工使用,这个项目已经有一个memcached服务器了.而有一个需求是公司人员需要操作客户端的memcached,而客户端的memcached又是另外一台.所以需要实例化两个对象出来.还有一种解决方案比较简单就是直接把这个接口写在客户端项目里面也可以解决。