项目一直对memcached涉及比较多,以前一直都是手动设置以及清理memcache,操作都较为繁琐并且很不方便,最近了解到一个mysql-proxy与memcached整合的项目(http://github.com/clofresh/mysql-proxy-cache/blob/master/mysql-proxy-cache.lua)。 这个名为mysql-proxy-cache的需要以下包文件 * MySQL Proxy (http://dev.mysql.com/downloads/mysql-proxy/index.html) * memcached (http://www.danga.com/memcached/) * LuaRocks (http://www.luarocks.org/) – to install the md5 and luasocket libraries * md5.lua (http://www.keplerproject.org/md5/) * Memcached.lua (http://luamemcached.luaforge.net/) * LuaSocket (http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/) 启用mysql-proxy: mysql-proxy –proxy-lua-script=mysql-proxy-cache.lua 脚本的工作原理比较简单,个人觉得应用没多大意思。可能性能还不如mysql Qcachem, 它的工作流程是。首先判断是否为select语句,将sql md5后作为key,从memcached中以key读取value, 如果有直接发给客户端没有就从数据库读取,然后存入memcache. memcached你做清理操作,只设置有效期,因此数据有一定时间的延迟,对于大部分应用来说是不能忍受的,所以应用范围比较窄。 但是不失为一个好的缓存方案,特定方案特定用途。