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

Redis的特点及与Memcache的特点的区别

2017-08-02 17:17 295 查看
Redis的特点

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。

Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。

Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

Memcache与Redis的区别都有哪些?

1、存储方式

Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。

Redis有部份存在硬盘上,这样能保证数据的持久性。

2、数据支持类型

Memcache对数据类型支持相对简单。均是简单的字符串

Redis有复杂的数据类型。支持string,list,set,sorted set,hash

3、使用底层模型不同

它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。

Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4、value大小

redis最大可以达到1GB,而memcache只有1MB

5、速度问题

redis速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

6、特性
 redis具有丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

 volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

 volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰

 allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

 allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰

 no-enviction(驱逐):禁止驱逐数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息