Memcached的原理是什么

发布时间:2021-10-19 18:22:55 作者:柒染
来源:亿速云 阅读:114

Memcached的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、Memcached简介

    memcached是高性能的分布式内存缓存服务器。它通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。与其类似常见的还有Redis。Memcached基于一个存储键/值(K/V)对的hashmap。客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

    memcached的API使用32位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。

二、Memcached的分布式算法

1、余数哈希(余数计算分散):

原理:根据服务器台数的余数进行分散:先求得键(key)的整数哈希值( int hashCode ),通过Hash函数把key转化成整数后,再用这个哈希值除以服务器台数,根据余数选择服务器。

举例:总共10台服务器(编号为0~9),先获取数据的key的整数哈希值:hashCode=hash(key)=13 ,然后除以服务器总台数,mod 10(13%10)=3,即选择编号为3的服务器进行存储。

缺点:当添加或减少服务器后要进行重哈希,这样会导致原来的服务器序号变了,则可能出现求得的余数也改变,导致Memcached命中率下降,导致更多地访问数据库服务器去调数据,增加了数据库服务器的负载。

2、一致性哈希:

原理:

容错性:对下图,当Server3服务器故障时,数据的存储指示D发生了改变,存放在了Server2上边。系统的存储数据变化最少(因为是数据是顺时针寻找服务器存储,所以D位置数据找到的是Server2服务器)

扩展性:假设增加服务器Server4,按规则放在BC中间,那么只是B存储在Server4上边了,整体的影响只是发生在了新增节点的区间部分。

三、Memcached的数据清除算法

四、工作流程

五、Memcached 和 Redis的区别?

1、数据存储位置:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。而Memecache把数据全部存在内存之中;

2、速度上:Redis的速度比memcached快很多;

3、多线程:Memcached支持多线程,而Redis使用单线程的IO复用模型;

4、支持的数据类型:Memcached仅支持简单的数据类型,想要存入复杂的数据类型必须把复杂的数据类型转变成简单的数据类型。Redis不仅仅支持简单的k/v类型的数据,同时还提供string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)等数据结构的存储。

关于Memcached的原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. Memcached原理与部署
  2. Memcached工作原理的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

memcached

上一篇:Springcloud中zuul的Zuul Filter是什么

下一篇:微服务spring-cloud 链路追踪skywalking6.x引入的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》