redis服务端关闭 内部的数据消失 为了不让它消失就用到了持久化


1. rdb模式持久化
RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件还原数据库当时的状态。

 

第一步,准备一个redis配置文件, rdbredis.conf
写入如下内容

daemonize yes #后台运行redis
port 6379 #redis端口
logfile /data/6379/redis.log #redis日志文件位置
dir /data/6379/ #指定redis数据文件夹放在哪 # 需要自己创建这个 /data/6379 文件夹
dbfilename s17dump.rdb #指定rdb的数据文件
bind 0.0.0.0 #绑定在任何ip上 也就是说可以通过本机存在的任何ip都能访问到这里
requirepass redhat #指定redis的密码
save 900 1 #代表 900秒内 有1个修改key的操作,就进行持久化
save 300 10 # 300秒内 有10个修改类的操作,就持久化
save 60 10000 # 60秒内 有10000个修改类的操作,就持久化

第二步,通过配置文件启动 redis服务端,支持rdb持久化的 服务端
#并且可以通过 save指令 手动触发持久化数据

redis-server rdbredis.conf
auth 密码
set name "haha"
save # 输入这个命令才会持久化

这样就多了一个s17dump.rdb 里面存的是数据 完成了持久化

 


2. aof持久化模式 ,不需要你手动的save触发持久化
记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集
AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。

配置方式如下
1.修改redis的配置文件,如下 ,再次创建一个 新的aof配置文件

touch aofredis.conf # 在redis-4.0.10]# 状态下


#编辑配置文件,写入如下内容

vim aofredis.conf
#写入如下内容 #后台运行redis
daemonize yes
port 6379
logfile /data/6379/redis.log #日志文件
dir /data/6379 #指定redis数据文件夹放在哪 # 需要自己创建这个 /data/6379 文件夹
appendonly yes #开启aof持久化的参数,就是这个
appendfsync everysec #每秒进行一次aof持久化


3.支持aof方式的持久化

redis-server aofredis.conf

 

4.验证 aof持久化,
写入数据后,杀死进程,
再次启动redis,检查数据

redis-cli 打开客户端

set name "哈哈"

kill -9 进程号

redis-server aofredis.conf 再次启动看看数据在不在,在就成功

#在不重启的情况下,切换rdb数据到aof模式下 开启AOF 关闭RDB

1.环境准备 准备一个rdb的redis数据库,并且是2.0版本以上的

2.登陆此时的rdb数据库,通过两条命令,临时修改 切换到aof模式下,也是吧rdb数据转化为aof的模式

127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能
OK
127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能
OK

 

3.此时还是临时生效,必须修改配置文件,永久生效
配置文件,修改为如下
[root@master redis-4.0.10]# cat rdbredis.conf
daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379/
bind 0.0.0.0
appendonly yes #开启aof持久化的参数,就是这个
appendfsync everysec #每秒进行一次aof持久化

posted on 2019-03-27 22:32  宇之尘  阅读(78)  评论(0编辑  收藏  举报