redis提供了两种持久化的方式:
- RDB(redis database)在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;
- AOF(append only file)是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。
其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高。
如果你没有数据持久化的需求,也完全可以关闭RDB和AOF方式,这样的话,redis将变成一个纯内存数据库,就像memcache一样。
RDB
优点 | 缺点 |
---|---|
redis数据库只包含一个文件,出现故障易恢复 | 存在宕机情况数据丢失 |
性能最大化、效率高 | 数据量大时fork子进程,可能会导致服务暂停 |
AOF
优点 | 缺点 |
---|---|
数据安全性高,异步完成同步,效率高 | 文件大,恢复速度慢 |
提供的清晰日志,方便异常情况下数据重建 | 效率低 |
redis优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets
数据类型操作。 - 原子性,同时支持几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
redis支持类型
- String字符串,一个键最大能存储512MB
SET key "value"
GET key
- Hash哈希,可存2^32-1对
HMSET key value1 value2 value3
HGETALL key
3.List列表,可存2^32-1对
lpush list value1
lrange list 0 10
- Set集合,可存2^32-1对
sadd key value
smember key
- zset有序集合,不允许重复的成员,可存2^32-1对
zadd key score value
ZRANGEBYSCORE key 0 1000
redis支持主从同步,异步进行,主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。
redis 与memcached区别
redis | memcached | |
---|---|---|
支持的数据类型 | String、Hash、List、Set和Sorted Set | key-value |
存储 | 并非所有数据存储在内存中,物理内存快使用完后,将一些老的数据存储在次变中 | 只存储于内存中 |
持久化 | RDB和AOF | 不支持 |
集群 | 服务器端构建分布式存储 | 能采用客户端实现分布式存储 |
网友评论