Memcache 和 Radis 比较
Memcache 和 Radis 比较
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
1. memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
redis有部份存在硬盘上,这样能保证数据的持久性。
2. Memcache使用了Slab Allocator的内存分配机制:按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。
3. memcache 存在内存中,分配的内存满后,会按一定的规则删除一些k/v数据,重启后自然全部丢失。
4. 过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定。
6. memcached能接受的key的最大长度是,255字符。
9. 删除Delete操作只是将该chunk置为删除状态,这样在下次使用将优先利用这样的chunk。
10. Flush操作相当于将所有的item失效的一个动作。并不会改变memcache内存分配情况。
12. memcache分配给某个slab的内存页不能再分配给其他slab。
13. flush_all不能重置memcache分配内存页的格局,只是给所有的item置为过期。
14. memcache最大存储的item(key+value)大小限制为1M,这由page大小1M限制。
16. 启动memcached时可以通过-M参数禁止LRU替换,在内存用尽时add和set会返回失败。
17. memcached启动时指定的是数据存储量,没有包括本身占用的内存、以及为了保存数据而设置的管理空间。因此它占用的内存量会多于启动时指定的内存分配量,这点需要注意。
1. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
2. Redis支持数据的备份,即master-slave模式的数据备份。
3. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
6. redis有一个致命缺陷 当内存满了时 dump数据cpu占用100%。
三、Memcache和Redis区别
Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache更强。
1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3.Redis支持数据的备份,即master-slave模式的数据备份。
4.如果你对数据持久化和数据同步有所要求,那么推荐你选择Redis,因为这两个特性Memcached都不具备。即使你只是希望在升级或者重启系统后缓存数据不会丢失,选择Redis也是明智的。
5.如果要说内存使用效率,使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。当然,这和你的应用场景和数据特性有关。
6.redis可以做cache,但redis更多是作为内存数据库的角色存在,且一致性哈希的实现还不成熟
7.redis具备binlog功能,可以将所有操作写入日志,当redis出现故障,可依照binlog进行数据恢复。
8.在100k以上的数据中,Memcached性能要高于Redis。
性能测试参考:
MemcacheDB, Tokyo Tyrant, Redis performance test
转载于:https://www.cnblogs.com/developer-ios/p/5357625.html
Memcache 和 Radis 比较相关推荐
- 研究Mysql优化得出一些建设性的方案
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 熟悉网络请求路径,网址经过浏览器的URL验证,是否正确证书是否失效,经过host文件处理,以及Dns ...
- wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...
一般来说WDCP安装之后就可以正常使用了,不过对于一些朋友来说还无法满足,现在收集了有关WDCP常用组件,比如memcache.mysqli.PDO_MYSQL.mysql innodb.libmcr ...
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- Memcache内存分配策略
转自:http://tank.blogs.tkiicpp.com/2010/12/14/memcache%e5%86%85%e5%ad%98%e5%88%86%e9%85%8d%e7%ad%96%e7 ...
- memcache和memcached安装
首先要明确 memcache不是memcached 第一步安装libevent #wget https://github.com/downloads/libevent/libevent/libev ...
- 分享memcache和memcached安装过程
Memcache是什么? Memcache是一个自由和开放源代码.高性能.分配的内存对象缓存系统.用于加速动态web应用程序,减轻数据库负载. 它可以应对任意多个连接,使用非阻塞的网络IO.由于它的工 ...
- Linux下Memcache服务器端的安装
Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...
- Linux下的Memcache安装(含libevent的安装)
Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...
- 在apache中使用 memcache 来作 session 存储
session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211" 使用多个 memcached ...
最新文章
- [cocos2dx UI] CCLabelAtlas 为什么不显示最后一个字
- 仅仅是又多了一本设计书吗 《软件框架设计的艺术》序
- (筆記) 如何安裝Altera USB Blaster? (SOC) (Quartus II) (DE2)
- Win8Metro(C#)数字图像处理--2.33图像非线性变换
- 鸿蒙手机(真机)播放音乐-第二集
- spring案列——annotation配置
- gradle 替换java类_Gradle字符串替换
- ImageLoader
- 第二季-专题9--代码搬移不可少
- CPU基础---设计一个8位的并行加法器
- plm系统服务器,PLM产品全生命周期管理 - 产品数据服务系统
- asterisk sip服务器搭建与配置
- 组装服务器3c,服务器3C认证如何办理
- 支持flv视频播放的h5播放器-xgplayer
- ACM-ICPC 2018 沈阳赛区网络预赛 F题 Fantastic Graph
- openwrt路由表设置_OpenWrt路由器常用设置
- 小闹乎谈新手必备的撸猫手册
- re -12 buuctf [Zer0pts2020]easy strcmp
- 医疗人工智能前景——医学影像
- 扒了扒华为、新华三、联想、浪潮、曙光5家的财报,吓一大跳
热门文章
- CVPR2005【行人检测】HOG+SVM用于人体检测的梯度方向直方图
- 给linux内核传递数组,数组与指针 - Linux C编程实战之路_Linux编程_Linux公社-Linux系统门户网站...
- 2020-11-08
- oracle表违反主键约束,主键/约束/事务/表关系 Oracle
- python字符串处理函数汇总_Python内置的字符串处理函数详细整理(覆盖日常所用)...
- 2020年系统集成项目管理工程师上午真题及答案解析
- 泰坦尼克号是怎么从2D转成3D的?
- oracle 提示存在lob,Oracle数据库出现ORA-19566 LOB坏块的处理记录
- jQuery怎么改变img的src
- Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写