028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Memcached的原理是什么

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的原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


名称栏目:Memcached的原理是什么
转载注明:http://www.tsicrk.com/article/gppddh.html

其他资讯

让你的专属顾问为你服务

0.8832s