数据持久化

2021-06-21  本文已影响0人  一个小运维

RedisDataBase(RDB)

save 900 1                  //15分钟内有1个key改变即存盘  
save 300 10                   //5分钟内有10个key改变即存盘
save 60 10000               //1分钟内有10000个key改变即存盘
save           //阻塞写存盘
bgsave              //不阻塞写存盘
RDB的优缺点
配置RDB
# [root@redis7 ~]# vim /etc/redis/6379.conf
dbfilename dump.rdb
save 900 1
save 120 10
save 60 10000
# 停止redis服务
[root@redis7 ~]# service redis_6379 stop
Stopping ...
Redis stopped

# 删除数据
[root@redis7 ~]# rm -rf /var/lib/redis/6379/*

# 启动服务
[root@redis7 ~]# service redis_6379 start
Starting Redis server...

# 查看数据文件,因为没有存储过任何数据,所以不存在RBD文件
[root@redis7 ~]# ls /var/lib/redis/6379/
# 120秒内添加10个数据
[root@redis7 ~]# redis-cli
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 k4 v4 k5 v5
OK
127.0.0.1:6379> MSET k6 v6 k7 v7 k8 v8 k9 v9 k10 v10
OK

127.0.0.1:6379> KEYS *
 1) "k10"
 2) "k2"
 3) "k3"
 4) "k9"
 5) "k8"
 6) "k4"
 7) "k5"
 8) "k7"
 9) "k6"
10) "k1"
127.0.0.1:6379> exit

[root@redis7 ~]# ls /var/lib/redis/6379/
dump.rdb
# 备份数据文件
[root@redis7 ~]# cp /var/lib/redis/6379/dump.rdb ~/

# 模拟误删除数据
[root@redis7 ~]# redis-cli
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> exit

# 恢复数据
[root@redis7 ~]# service redis_6379 stop
Stopping ...
Redis stopped

[root@redis7 ~]# cp dump.rdb /var/lib/redis/6379/   # 用备份文件覆盖目标文件
cp: overwrite ‘/var/lib/redis/6379/dump.rdb’? y

# 启动服务并验证
[root@redis7 ~]# service redis_6379 start
Starting Redis server...
[root@redis7 ~]# redis-cli
127.0.0.1:6379> KEYS *
 1) "k6"
 2) "k3"
 3) "k4"
 4) "k1"
 5) "k8"
 6) "k7"
 7) "k9"
 8) "k5"
 9) "k10"
10) "k2"

Append Only File(AOF)

AOF文件记录写操作的方式
AOF优点与缺点
配置AOF
[root@redis7 ~]# redis-cli
127.0.0.1:6379> CONFIG SET appendonly yes
OK
127.0.0.1:6379> CONFIG REWRITE
OK
127.0.0.1:6379> SAVE
OK
127.0.0.1:6379> exit

# 查看AOF文件
[root@redis7 ~]# ls /var/lib/redis/6379/
appendonly.aof  dump.rdb
# 备份AOF文件
[root@redis7 ~]# cp /var/lib/redis/6379/appendonly.aof ~/

# 删除数据
[root@redis7 ~]# redis-cli
127.0.0.1:6379> KEYS *
 1) "k6"
 2) "k3"
 3) "k4"
 4) "k1"
 5) "k8"
 6) "k7"
 7) "k9"
 8) "k5"
 9) "k10"
10) "k2"
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> exit

# 恢复数据
[root@redis7 ~]# service redis_6379 stop
Stopping ...
Redis stopped
[root@redis7 ~]# rm -rf /var/lib/redis/6379/*
[root@redis7 ~]# cp appendonly.aof /var/lib/redis/6379/

# 启动服务并验证
[root@redis7 ~]# service redis_6379 start
Starting Redis server...
[root@redis7 ~]# redis-cli
127.0.0.1:6379> KEYS *
 1) "k10"
 2) "k3"
 3) "k2"
 4) "k9"
 5) "k1"
 6) "k6"
 7) "k5"
 8) "k8"
 9) "k7"
10) "k4"
上一篇 下一篇

猜你喜欢

热点阅读