NoSQL 数据库案例实战 --Redis 数据持久化

前言

本环境是基于 Centos 7.8 系统构建Redis学习环境
具体构建,请参考 Redis-5.0.9环境部署

为了本身数据的完整和安全性,虽然redis数据库基于内存存储。但是它仍然支持数据的持久化,redis支持两种方式的持久化。接下来我将相信介绍


持久化方式:

  • a、基于快照的方式:redis安装一定的周期把内存里面的数据同步到磁盘文件里面。
  • b、基于文件追加:redis会把对redis数据造成更改的命令记录到日志文件里面,然后再一次重启,执行日志文件里面对redis写的操作,达到数据还原。

一、基于快照的持久化

修改配置文件,开启基于快照的选项

  • save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
  • save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
  • save 60 10000 #60秒内容如超过10000个key被修改,则发起快照保存
    以上是系统默认配置

持久化目录

[root@reids_source_code redis]# ll /var/lib/redis/
total 4
-rw-r--r--. 1 redis redis 92 Feb 13 20:00 dump.rdb

模拟dump.rdb文件持久化

# 删除dump.rdb文件
[root@reids_source_code redis]# systemctl stop redis
[root@reids_source_code redis]# rm -f /var/lib/redis/dump.rdb 
[root@reids_source_code redis]# ll /var/lib/redis/dump.rdb
# 数据库中写入数据
[root@reids_source_code redis]# redis-cli -h 192.168.5.12 -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.5.12:6379> set name wan
OK
192.168.5.12:6379> set age 18
OK
192.168.5.12:6379> bgsave
Background saving started
192.168.5.12:6379> exit
[root@reids_source_code redis]# ll /var/lib/redis/dump.rdb
-rw-r--r--. 1 redis redis 114 Feb 13 20:27 /var/lib/redis/dump.rdb
# 重启服务,登录数据库,查看数据
[root@reids_source_code redis]# redis-cli -h 192.168.5.12 -a 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.5.12:6379> get name
"wan"
192.168.5.12:6379> get age
"18"

二、基于文件追加方式持久化

配置内容

基于日志文件追加方式开启持久化
appendonly yes
日志文件
appendfilename “appendonly.aof”
备份文件周期
appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
appendfsync no //完全依赖os,性能最好,持久化没保证

实现步骤

[root@reids_source_code redis]# vim /etc/redis/redis.conf 
appendonly yes
appendfsync everysec
[root@reids_source_code redis]# systemctl restart redis

查看追加文件

[root@reids_source_code ~]# ll /var/lib/redis/appendonly.aof 
-rw-r--r--. 1 redis redis 0 Feb 13 20:31 /var/lib/redis/appendonly.aof

总结

redis支持持久化功能,可通过以上两种方式支持持久化
持久化保存的文件(即redis安装目录下)

[root@reids_source_code ~]# ll /var/lib/redis/
total 4
-rw-r--r--. 1 redis redis   0 Feb 13 20:31 appendonly.aof
-rw-r--r--. 1 redis redis 114 Feb 13 20:31 dump.rdb

猜你喜欢

转载自blog.csdn.net/XY0918ZWQ/article/details/113803200