首页 > memcache取值失败的问题

memcache取值失败的问题

我是做APP后台接口开发的,有这样一样情况,客户端从cache里取值不稳定,有时候取得到有时候取不到,我在本地调用我的接口往memcache里面设值,telnet之后一直能访问到,就是远程调用的时候会出问题。而且远程调用取不到cahce里的值的时候,我telnet到memcache也get不到值,大神们是怎么回事啊,初次使用memcahce急死了。。。


memcached会把内存分成许多个slab,比如100bytes,128bytes... 当你的value值绝大部分是120bytes时,就会导致128bytes使用空间不足,覆盖之前的key-value,但此时可能100bytes,140bytes等这些还是空的,也就是内存实际还有但依然会失效。

可以调节memcached 的 growth factor 参数试一试


应该是内存满了


很高兴回答楼主的问题!

首先你需要明确一点,取不到数据,先看看数据在不在memcache中,你可以使用memadmin这个工具进行查看memcache中的数据,当然了也可以进行编辑,工具比较简单,这里就不说怎么使用了。

使用memcache工具,当你的键值是失效而取不到时,它会提示键值已经失效,过期。

而且远程调用取不到cahce里的值的时候,我telnet到memcache也get不到值

  1. 请确认远程调用取cache值的代码的正确性,确认代码没有删除memcache中的数据;
  2. 或者,请先telnet取值,然后再远程访问cache,这样试一下。

当然了,由于不知道实际的代码逻辑,所以我也无法确认实际的问题,只能简单的说出一些方法,希望我的方法对你有帮助。

最后,如果你解决了问题,希望你能把问题的答案再分享出来喽。

【热门文章】
【热门文章】