memcache的存储方式
在启动memcache时,memcache会申请若干个slab块, 每个slab块又会分配若干个page, 每个page的大小默认为1M, 在数据缓存进来的时候,memcache会查看是否有合适的slab,然后该slab是否有合适的chunk存储数据,这里的chunk就是用于存储数据的最小单位, 每个page下会有若干个大小相同的chunk,而每个page之间的chunk又是不同的,如上图,如果每个chunk大小为112Byte,那么对应的page就是有100个chunk, 当一个要缓存的数据打大小大于88byte而小于122byte时,就会被存储在这个page的某个chunk里。存储的chunk的原则是不小于被存储数据大小的最小size的那个chunk.
数据过期的方式1: Lazy Expiration
Memcache不会监视数据的过期时间, 只是在get缓存的时候查看该缓存的时间戳(在缓存的时候会有记录),如果超过就获取不到,这种方式就是Lazy Expiration
2: LRU(Least Recently Used)
Memcache会以过期的缓存空间优先存储数据,但假如内存吃紧, 没有可用的已过期的存储空间,这种时候就会使用LRU机制, 删除最近最少使用的的内存空间。
使用一致性hash算法解决节点故障
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61676.html
摘要:自己整理了一篇不同等级面试都问什么的文章,关注公众号琉忆编程库,回复等级,我发给你。 你好,是我琉忆。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。这篇文章是本周Memcache和Redis内存数据库常考的专题。本周一和周三更新的文章路径:PHP面试常考内容之Memcache和Redis(1)PHP面试常考内容之Memcache和Redis(2)本周(2019.2-18至...
摘要:自己整理了一篇不同等级面试都问什么的文章,关注公众号琉忆编程库,回复等级,我发给你。 你好,是我琉忆。今天是周五了,再上一天班就周末了,提前祝大家周末愉快。嘿嘿。这篇文章是本周Memcache和Redis内存数据库常考的专题。本周一和周三更新的文章路径:PHP面试常考内容之Memcache和Redis(1)PHP面试常考内容之Memcache和Redis(2)本周(2019.2-18至...
摘要:余数分布式算法就是根据服务器台数的余数进行分散。余数分布式算法由于保存键的服务器会发生巨大变化,而影响缓存的命中率,但中,只有在上增加服务器的地点逆时针方向的第一台服务器上的键会受到影响。 WHAT is Memcache? Free & open source, high-performance, distributed memory object caching system, g...
摘要:总结允许的缓存写场景大部分情况,修改成本会高于增加一次,因此应该淘汰缓存如果还在纠结,总是淘汰缓存,问题也不大先操作数据库,还是先操作缓存这里分了两种观点,的观点沈老师的观点。这里我觉得沈老师可能忽略了并发的问题,比如说以下情况一个写请求 缓存误用 缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。 有架构师说缓存是万金油,哪里有问...
摘要:总结允许的缓存写场景大部分情况,修改成本会高于增加一次,因此应该淘汰缓存如果还在纠结,总是淘汰缓存,问题也不大先操作数据库,还是先操作缓存这里分了两种观点,的观点沈老师的观点。这里我觉得沈老师可能忽略了并发的问题,比如说以下情况一个写请求 缓存误用 缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。 有架构师说缓存是万金油,哪里有问...
阅读 2263·2021-11-15 11:37
阅读 2923·2021-09-01 10:41
阅读 747·2019-12-27 11:58
阅读 731·2019-08-30 15:54
阅读 701·2019-08-30 13:52
阅读 2908·2019-08-29 12:22
阅读 1051·2019-08-28 18:27
阅读 1432·2019-08-26 18:42