今天发现一处memcache缓存没有存住,测试了一下,认定是这条缓存大小超长了。写代码测试,大小应该是限制在1M,从文档中查了一下,也是这个说法:slab中item的大小默认是1M。
解决这个问题的方法大概有三种:
- 修改memcache限制,使用-I(大写的i)启动。但是暂未找到不重启就实时修改的方法。
- 修改代码,减少放到缓存中的冗余文本,因为是旧代码,比较麻烦。
- 在存入缓存时,使用压缩选项。经过测试,这应该是最取巧的方法。缺点是掩盖了潜在问题(冗余内容多),浪费一些cpu,额外的好处可能是节省网络请求了。