1.LRU机制
缓存淘汰算法: Least recently used(最近最少原则)
具体详见这里
2.Memcache缓存MySQL原理和缓存过程
通过Memcache提高网站访问速度和减少数据库压力,通过这篇文章了解Memcache和MySQL之间的交互流程关系
3.lazy load机制
对有缓存层的数据库进行增删改操作时,采取lazy load策略。
新增时只写入数据库,并不会马上更新Memcached,而是等到再次读取时才会加载到Memcached中,修改和删除操作也是更新数据库,然后将Memcached中的数据标记为失效,等待下次读取时再加载。
4.Memcache存在的问题
5.缓存清理过期数据问题
6.HandlerSocket介绍
HandlerSocket是日本人akira higuchi 写的一个MySql的插件。通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。按照作者给出的数据可以在数据全部在内存的情况下可以达到75W的QPS查询。
HandlerSocket通过插件的方式赋予MySQL完整的NoSQL功能,从原理上讲,它跳过了MySQL中最耗时的语法解析,查询计划等步骤,直接读取数据,如果内存够大,能装下索引,MySQL的查询效率能提高若干倍。
这是一个开源项目,GitHub上有支持很多语言的HandlerSocket版本。
7.HandlerSocket性能
总结:HandlerSocket可以在高并发、简单表操作的环境下替代MySQL
性能测试结果详见这里
8.为什么HandlerSocket能解决Memcache的问题
参考链接列表:
- 下一站:HandlerSocket!
- MySQL的NoSQL插件–HandlerSocket
- HandlerSocket