Redis持久化rdb和aof简单介绍

redis消息队列:
发布和订阅,以及频道
打开一个subscribe

127.0.0.1:6379> SUBSCRIBE test
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "test"
3) (integer) 1
1) "message"
2) "test"
3) "hello"
1) "message"
2) "test"
3) "word

在另外一个终端输入 PUBLISH test word

127.0.0.1:6379> PUBLISH test word
(integer) 1
127.0.0.1:6379> 

那么这些数据会将在subcribe中打印出,这种方式发送后将不会再发送,如果丢失则会丢失

redis支持两种持久化,分别是rdb和aof
rdb:指定的时间内快照存放在本地
aof: 将所有执行过的命令保存在本地,这种方式更像mysql的binlog
在服务器宕机时,如果是快照的方式,数据将会丢失一部分,而aof则损失的较小,并且在后台会进行重写

rdb:

[root@yum-down ~]# vim /etc/redis/6379.conf
save 900 1 
save 300 10
save 60 10000

900秒内如果有一个key发送变化则做一次快照,或者在300秒内有10个key发生变化则做一次快照,或者在60秒内,有10000个key做一次快照,禁用删除save即可,另外这里的快照是经过压缩的

dbfilename dump_6379.rdb 快照的保存的名词
dir /opt/redis 快照保存的位置
如下:

127.0.0.1:6379> set key 1
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> set key 2
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> 

[root@yum-down ~]# ll /opt/redis/
total 4
-rw-r--r-- 1 root root 27 Feb 26 04:49 dump_6379.rdb
[root@yum-down ~]# ll /opt/redis/
total 4
-rw-r--r-- 1 root root 27 Feb 26 04:50 dump_6379.rdb
[root@yum-down ~]# ll /opt/redis/

BGSAVE

127.0.0.1:6379> BGSAVE
Background saving started
127.0.0.1:6379> 
[root@yum-down ~]# ll /opt/redis/
total 4
-rw-r--r-- 1 root root 27 Feb 26 04:51 dump_6379.rdb

通常我们备份时AVE不会影响到正常业务,通常我们关机时使用save后再进行。
SAVE和BGSAVE它们调用的方式各有不同: SAVE 直接调用 rdbSave ,阻塞 Redis主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求,BGSAVE 则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。因为 rdbSave 在子进程被调用,所以 Redis 服务器在BGSAVE 执行期间仍然可以继续处理客户端的请求。

AOF:

[root@yum-down ~]# vim /etc/redis/6379.conf
appendonly yes
appendfilename "appendonly.aof"

AOF在set是通过算法进行数据重写
AOF在配置文件中修改后,他的数据也是存放在dir目录中,和rdb一个目录中

[root@yum-down redis]# ll /opt/redis/
total 4
-rw-r--r-- 1 root root  0 Feb 26 05:49 appendonly.aof
-rw-r--r-- 1 root root 27 Feb 26 05:49 dump_6379.rdb
[root@yum-down redis]# 
[root@yum-down redis]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$1
1
$1
1
[root@yum-down redis]# 

0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2016-02-27分类: Redis

标签: redis

发表评论