| memcache | redis |
类型 | 内存数据库 | 内存数据库 |
数据类型 | 在定义value时就要固定数据类型 | 不需要 有字符串,链表,集 合和有序集合 |
虚拟内存 | 不支持 | 支持 |
过期策略 | 支持 | 支持 |
分布式 | magent | master-slave,一主一从或一主多从 |
存储数据安全 | 不支持 | 使用save存储到dump.rdb中 |
灾难恢复 | 不支持 | append only file(aof)用于数据恢复 |
性能 | | |
说明:
1、 类型——memcache和redis都是将数据存放在内存,所以是内存数据库。当然,memcache也可用于缓存其他东西,例如图片等等。
2、 数据类型——
Memcache在添加数据时就要指定数据的字节长度,例如:
set key3 0 0 8
hellodba
STORED
而redis不需要,例如
redis 127.0.0.1:6379>set key2 "test2"
OK
redis 127.0.0.1:6379>get key2
"test2"
3、 虚拟内存——当物理内存用完时,可以将一些很久没用到的value 交换到磁盘
4、 过期策略——memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10
5、 分布式——设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从
6、 存储数据安全——memcache断电就断了,数据没了;redis可以定期save到磁盘
7、 灾难恢复——memcache同上,redis丢了后可以通过aof恢复