mysql ---- |
memcache--| -- proxyDb --- App
redis --------|
读: 读redis->没有,读mysql->把mysql数据写回redis (memcache)
写: 写mysql->成功,写redis (memcache)
写: 写mysql->成功,写redis (memcache)
几个要点
1:memcache和mysql的链接时间,如果两个链接同时开启,先开启的会影响后开启的,比如memcache先开启链接,然后开启mysql,如memcache阻塞,程序未及时释放,会连带导致mysql崩溃,这种情况以前遇到过,记住链接必须加超时限制,防止连带阻塞现象。或者,释放memcache连接后,再开启mysql链接(这样不利于程序封装)
2:memcache命中率如不高,不如不用。做memcache应用后,第一件事情是测试命中率情况,不能认为加了缓存就一定可以提高效率。
3:如果数据块较大,放在memcache中读取的效率或许不如mysql。
4:随时监控swap分区占用情况,确保内存使用合理。
5:memcached适合简单的key-value查询,如果涉及结构性内容,或者排名类应用,建议使用redis.