Redis 与 Memcache
最近,我们看到许多使用Redis的案例,尤其是大型及先进的系统中应用的更多。事实上,我们正管理着一个新的规模庞大的Redis集群,设计该架构是为了每秒能处理上百万个事务。然而,Redis与Memcache有许多类似的地方,都是基于网络的、运行于内存的、用来储存key value数据的存储器,所以通常被用来缓存许多信息,包括像PHP会话及数据库数据等。但Redis比Memcache要好,原因如下:
Redis最主要的特点是比较稳定,或者说它可将数据存储在物理磁盘上而不是虚拟内存中。这就解决了Memcache所面临的第一个问题:Memcache在损坏或重启时会丢失全部数据。这样,Redis便可用在包含许多服务器的大型系统中,而不会意外丢失数据。通过简单的快照或日志便可保证Redis的持续服务性。但是MemCache则会因为各种各样的一些小问题而受到影响,比如高内存占用率。
Redis还有另外一个有趣的独有的特点:就是数据复制。它允许您建立主-从系统,当主系统瘫痪后,您可在从系统上恢复功能。这也使得您可在从系统上读取数据,从而得到更高的性能,甚至可以在另外一个地理位置的独立数据中心中的分布式从系统上读取。
最后,Redis的功能远比Memcache要多的多,它支持集、列表及更高级的数据组。此外,它拥有许多功能可以处理系统中的数据。它支持某些特定事务及乐观锁定机制,最近发布的2.6版本还支持Lua脚本。
然而,Redis也不是尽善尽美的。最主要的问题就是不支持直接集群,在Memcache中,您可以列出3个服务器进行library分配,甚至可以使用统一的哈希函数,当某个服务器瘫痪时,数据可以一致地迁移出去。幸运的是,Redis团队正在攻关这一技术,准备在下一版本中将该特点融入进来。
另一个重要的明显区别是,Memcache支持多线程而Redis不支持多线程。因为Redis只采用单一内核,所以必须同时处理许多实例,甚至达到每秒要处理1百万个请求。这将给Redis的配置、管理及监控带来挑战。
总的来说,我们看到Redis前进了一大步,尤其是当集群还没有那么重要的时候。Redis比Memcache更强大,存储数据更可靠,并且很可能是“key-value ”存储的未来 。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点此查看)
Redis 与 Memcache的更多相关文章
- 关于 redis、memcache、mongoDB 的对比
从以下几个维度,对 redis.memcache.mongoDB 做了对比. 1.性能 都比较高,性能对我们来说应该都不是瓶颈. 总体来讲,TPS 方面 redis 和 memcache 差不多,要大 ...
- redis、memcache、mongoDB 做了对比
from: http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对redis.memcache.mongoDB 做了对比. 1.性能 都比较 ...
- Redis、Memcache和MongoDB的区别(转)
1.性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mongodb 2.操作的便利性 memcache数据结构单一 redis丰富一些,数据 ...
- twemproxy explore,redis和memcache代理服务器
twemproxy,也叫nutcraker.是一个twtter开源的一个redis和memcache代理服务器. redis作为一个高效的缓存服务器,非常具有应用价值.但是当使用比较多的时候,就希望可 ...
- Redis与Memcache的区别
Redis与Memcache的区别 数据类型: redis数据类型丰富,支持set liset等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 持久性: red ...
- Redis和Memcache的区别
Redis和Memcache的区别 总结一: 1.数据类型 redis数据类型丰富,支持set liset等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支 ...
- 关于 redis、memcache mongoDB 的对比
from:http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对 redis.memcache.mongoDB 做了对比.1.性能都比较高,性能 ...
- Python操作Redis、Memcache、RabbitMQ、SQLAlchemy
Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...
- 关于 redis、memcache、mongoDB 的对比(转载)
from:http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对 redis.memcache.mongoDB 做了对比.1.性能都比较高,性能 ...
- [轉]redis;mongodb;memcache三者的性能比較
先说我自己用的情况: 最先用的memcache ,用于键值对关系的服务器端缓存,用于存储一些常用的不是很大,但需要快速反应的数据 然后,在另一个地方,要用到redis,然后就去研究了下redis. 一 ...
随机推荐
- JSON XML IO数据操作
一.XML解析 通过继承org.xml.sax.helpers.DefaultHandler类,覆写characters(),startDocument(),startElement(),endEle ...
- c++中的对象引用(object reference)与对象指针的区别
★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名. ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指针需 ...
- spark sql 基本用法
一.通过结构化数据创建DataFrame: publicstaticvoid main(String[] args) { SparkConf conf = new SparkConf() .se ...
- A - Number Sequence(矩阵快速幂或者找周期)
Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * ...
- [置顶] PHP调用move_uploaded_file()提示 failed to open stream: Permission denied(Linxux环境,以Ubuntu12.04为例)
在使用PHP上传文件之后,我们有时候还需要移动到特定的文件夹,这时候就要调用move_uploaded_file()函数,可是会出现如下错误: Warning: move_uploaded_file( ...
- ios 判断,qq,银行卡,手机号,邮编,生日,数字,字符串,护照, email
http://blog.csdn.net/dyllove98/article/details/8635079 IdentifierValidator.h // // IdentifierValida ...
- Qt 获取字符串的UTF8编码值
看到群里有人在问怎么获取字符串的UTF8编码值 自己测试了下 熟悉下函数 <span style="font-size:18px;"> ui->setupU ...
- QTableView 添加进度条 添加按钮 TreeWidget 增删改
http://www.cnblogs.com/li-peng/p/3961386.html http://www.cnblogs.com/li-peng/p/3961843.html http://w ...
- 以正确的方式开源 Python 项目
以正确的方式开源 Python 项目 大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清 晰和无痛.我不是 ...
- android4.4组件分析--service组件
6 Service 6.1 service介绍 6.1.1. 基本介绍 Service是Android四大组件之中的一个(其余的是activit ...