Redis--持久化的两种方式RDB和AOF以及一个取舍
1.什么是持久化
redis所有数据保持在内存中 对数据的更新将异步的保存在磁盘上
2.持久化的方式
快照 某时某点的copy mysql的Dump
redis的RDB
3.写日志 Mysql的Binlog
redis的AOF
4.什么是RDB
redis通过 save(同步) /bgsave(异步) /自动的方式把redis的数据完整的生成一个快照 保存在硬盘当中 也就是RDB文件(二进制)
5.save命令
是同步的 执行save命令的时候 其他命令要等待
5.bgsave命令
是异步的 其他命令不需要等待
执行bgsave命令 会使用linux的一个fork()函数 生成了主进程的一个子进程 这个子进程去完成 RDB文件(二进制)的生成 然后这个子进程会告诉主进程这个RDM文件生成成功了 bgsave successfully
6. 自动生成RDB文件的策略 (不推荐使用 不可控)redis.conf
意义:900秒做出一次改变
满足任意一条 就会自动生成RDB文件 生成策略是内部执行bgsave
测试:
1.save阻塞
2.bgsave fork
3.真的自动?
4.RDB长啥样
1.尽量不改变redis的原配置
- 新建 data文件 用于存放日志文件
mkdir data
2.新建 config文件 拷贝redis.conf的原配置
cp redis.conf config
3.修改配置文件名
mv 原文件 新文件 : 剪切(具备重命名功能
mv redis-6379.conf redis-6380.conf
redis-6380.conf
vim redis-6380.conf 进行配置
4.port 6380 端口
5.daemonize yes 是否以守护进程的方式启动
6.logfile “6380.log” 日志文件名
7.注释RDB自动的默认配置
#save 900 1
#save 300 10
#save 60 10000
8.日志文件和RDB文件放在哪?
dir /usr/local/tem/redis/data
9.RDB文件名
dbfilename dump6380.rdb
10 . 保存退出
11.启动
redis-server /usr/local/tem/redis/config/redis-6380.conf
12.关闭redis
redis-cli -p 6380 shutdown