您的位置:首页 > 数据库 > Memcache

Memcached 与Redis缓存服务器介绍

2017-03-15 19:00 411 查看
Memcached缓存

简单介绍:memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Redis缓存

简单介绍:是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。操作都是原子性的。在此基础上,redis支持各种不同方式的排序。

与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

:什么是主从同步?

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

两者区别与联系:

1.效率与扩展:

Memcached的内部内存管理机制却更具实际效率——这是因为Memcached在处理元数据时所消耗的内存资源相对更少。

Memcached在横向扩展方面也比Redis更具优势。由于其在设计上的思路倾向以及相对更为简单的功能设置,Memcached在实现扩展时的难度比Redis低得多。

2.数据回收机制:

Redis几乎在缓存管理工作中的每一个侧面都表现出显而易见的优越性。这套缓存方案采用所谓数据回收机制,能够将陈旧数据从内存中删除以提供新数据所必需的缓存空间。Memcached的数据回收机制使用的是LRU(即最低近期使用量)算法,而且往往会比较武断地直接删除掉与新数据体系相近的原有内容。

3.空间灵活性:

Redis还能为我们带来最大程度的灵活性空间,从而保证管理员在打理缓存对象时拥有充裕的施展平台。这一点主要体现在键名字节的限制上,在这方面,Memcached将键名限制在250字节,值也被限制在不超过1MB,且只适用于普通字符串。相比之下,Redis则将键名与值的最大上限各自设定为512MB,且支持二进制格式。

4.数据类型支持:

Redis支持六种数据类型,而Memcached只支持字符串类型。作为Memcached所支持的惟一一种数据类型,字符串非常适合用于保存那些只需要进行读取操作的数据,因为字符串本身无需进行进一步处理。

5.数据持久化:

Redis还提供可选而且能够具体调整的数据持久性方案,其设计目的在于在发生规划内停机或者计划外故障之后对缓存内容进行重新引导。

RDB持久化方式能够在制定的时间间隔对数据进行快照存储;

AOF持久化方式记录每次对服务器写的操作。

6.复制功能:

最后但也同样重要的一点是,Redis能够提供复制功能。复制功能旨在帮助缓存体系实现高可用性配置方案,从而在遭遇故障的情况下继续为应用程序提供不间断的缓存服务。

使用场景的选择:从功能多样性以及设计先进性的角度出发,Redis显然更适合被大家作为通用性的首选方案——除了少部分特殊场景之外。

以上总结结合了百度百科以及多个博客:http://blog.csdn.net/sosfnima/article/details/51993181
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息