memached与radis一点比较
2015-12-10 17:31
218 查看
一、内存分配与使用
Memcached使用预分配的内存池的方式,使用slab和大小不同的chunk来管理内存,
Item根据大小选择合适的chunk存储,内存池的方式可以省去申请/释放内存的开销,
并且能减小内存碎片产生,但这种方式也会带来一定程度上的空间浪费,并且在
内存仍然有很大空间时,新的数据也可能会被剔除
Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,
会在一定程度上存在内存碎片,Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,
并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,
导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。
二、支持的数据类型
Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能
Redis除key/value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS进行枚举操作,但不能在线上使用,如果需要枚举线上数据,Redis提供了工具可以直接扫描其dump文件,枚举出所有数据,Redis还同时提供了持久化和复制等功能。
ttserver与memcached一样,只支持简单的key-value,不过能实现持久化
上面内容摘自‘农夫庄园’,链接:http://nonfu.me/p/10854.html
Memcached使用预分配的内存池的方式,使用slab和大小不同的chunk来管理内存,
Item根据大小选择合适的chunk存储,内存池的方式可以省去申请/释放内存的开销,
并且能减小内存碎片产生,但这种方式也会带来一定程度上的空间浪费,并且在
内存仍然有很大空间时,新的数据也可能会被剔除
Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,
会在一定程度上存在内存碎片,Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,
并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,
导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。
二、支持的数据类型
Memcached基本只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能
Redis除key/value之外,还支持list,set,sorted set,hash等众多数据结构,提供了KEYS进行枚举操作,但不能在线上使用,如果需要枚举线上数据,Redis提供了工具可以直接扫描其dump文件,枚举出所有数据,Redis还同时提供了持久化和复制等功能。
ttserver与memcached一样,只支持简单的key-value,不过能实现持久化
上面内容摘自‘农夫庄园’,链接:http://nonfu.me/p/10854.html
相关文章推荐
- java 实现的Boyer-Moore(BM)算法
- Android学习摘记——简单的自定义View(组合控件)
- 美啦:从工具到美妆共享经济平台的豹变
- Android APK反编译查看源码及资源文件
- windows下构建Go程序
- IOS中的触摸事件
- CentOS_6.5单用户模式改密遇到Authentication token manipulation error和Read-only file system错误
- GSM模块短信发送举例
- Android学习笔记之Activity的启动模式
- 开发者证书的一些问题
- ubuntu上软件安装
- Objective-c语言_设置器和访问器
- iOS 十进制 二进制 转换
- Android开发常用工具类
- iOS 错误信息 This application is modifying the autolayout engine from a background thread...
- Rotate Array
- servlet中无法直接autowired bean from Spring
- ST教学分析:相同行为连续数
- swftools工具将pdf文件转换为swf文件
- C#自定义属性