我是做APP后台接口开发的,有这样一样情况,客户端从cache里取值不稳定,有时候取得到有时候取不到,我在本地调用我的接口往memcache里面设值,telnet之后一直能访问到,就是远程调用的时候会出问题。而且远程调用取不到cahce里的值的时候,我telnet到memcache也get不到值,大神们是怎么回事啊,初次使用memcahce急死了。。。
我是做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不到值
当然了,由于不知道实际的代码逻辑,所以我也无法确认实际的问题,只能简单的说出一些方法,希望我的方法对你有帮助。
最后,如果你解决了问题,希望你能把问题的答案再分享出来喽。
应该是内存满了