
项目中有一个对实时响应性比较高的服务,引入了 Memcached 以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。
客户端选择
统计信息
可以通过 nc 命令向 Memcached 服务端发送消息来获取统计信息,例如:
echo "stats settings" | nc localhost 20200 | sort但是,我更需要客户端的统计信息,尤其是缓存命中率,set 操作成功率等等。所以在客户端添加了一个简单的统计模块。每次处理用户请求的过程中,通常有两次向 Cache 服务端的提交 get 请求,很多情况下还有两次 set 请求,合计消耗 17ms,在把 set 请求改成 NOREPLY 模式以后,这个数减少到 10ms 以内。因此,对于实时性要求比较高的情形,请打开这个模式,或者干脆使用异步的 set。
服务端参数
客户端参数
最后,有人做了一个几个 Memcached 客户端的综合的性能试验:链接。
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》