memcache已存在的key-value,两个java应用在get操作时其中一台取值正常另一台返回null

问题

有两个 java 服务:server1, server2
两个服务连接的同一台 memcache(ip + 端口均一致)
平台的 passport 服务在登陆成功后将用户 session 信息存入了 memcache 中

现象一:
server1服务使用 memCachedClient.get (key);session 信息取值正常
server2服务使用 memCachedClient.get (key);session 信息取值为 null
且在 server2中尝试获取 memcache 中的其他 value 均为 null

现象二:
server2服务中执行了 memCachedClient.set (“test”,”test”); 操作成功
server1服务中进行 memCachedClient.get (“test”); 成功取出
反之 server1中存入后 server2 服务也可以成功取值

翻阅了很多博客,但都没有找到类似问题,有遇到过类似问题的小伙伴吗,求解!

最佳答案

找到问题了 不是memcache的问题 ,原因是memcache存入的value是序列化对象 取值的时候需要根据类路径做映射,项目里对应路径下没有那个类,所以取值是空。。。

2年前 评论
讨论数量: 3

估计key 不是一个吧

2年前 评论
fengruijie (楼主) 2年前

找到问题了 不是memcache的问题 ,原因是memcache存入的value是序列化对象 取值的时候需要根据类路径做映射,项目里对应路径下没有那个类,所以取值是空。。。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!