【Redis学习】:redis持久化
redis持久化
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEwMS9lMWVmODRkYmI5YmJjZDI5YmI0MTZhYTFkNDYyMzFjZC5KUEVH)
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQzMy9hNzNmOGY0MmY5MGFlYmE5ZWU3NzRhZjA3MTM2M2Q2MS5KUEVH)
redis的高性能是由于其将所有数据都存储在了内存中,为了使redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化、
redis支持两种方式的持久化,一种时RDB方式,一种时AOF方式,可以单独使用其中或者二者结合使用。
1、RDB持久化(默认支持,无需配置)
该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。
2、AOF持久化
该机制将以日志的形式记录服务器所处理的每一个写操作,在redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
3、无持久化
我们可以通过配置的方式禁用redis服务器的持久化功能,这样我们就可以将redis视为一个功能加强版的memcache了。
4、redis可以同时使用RDB和AOF
RDB
优势
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg1Ny83ZTE1Yzk5MmY3NzAzZjFhZjMxZTgxZWRkNDQ4YWIyOS5KUEVH)
劣势
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY2MS81ZmNlZDVlODk2ODQ5NWM0NTk0MmFlMDBiZDZkM2EwZC5KUEVH)
配置说明Snapshoting
快照参数设置
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkzNC9iN2ViMTlmMzM3MDIzYmYyNjExNDlmZTdhNGJkNGEwNi5KUEVH)
保存位置设置
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk2My9jNTQ5ZTE3ZjI2YmI1YmQzNDliYzA3MTdhZDUxN2RiMy5KUEVH)
AOF
优势
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc1Mi9iZTA3MWE5Zjg2ODg2OTVhNDIyNzRlMjIyOGEzYjMzOC5KUEVH)
劣势
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY2MS83NGU2YjI1MDdhNDUxOTI3ODUzZDU5MjUyNjM1MmNlZC5KUEVH)
配置AOF
配置信息
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ0OS8wNThkMTY1NzE3MjEzODdlOGZlNjI1NzJiNmFlZjYxOS5KUEVH)
AOF默认是关闭的
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU5Ni80OWFiMjM2NzY2OTkxZWZkY2M3MTQxYjgxOWZkODczNC5KUEVH)
策略的选择
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUxOS84OWMxNWU2ZGM0ODg1MzZmOWM4YjA0NWQ5ZWQ0ZGJlZi5KUEVH)
数据恢复演示
1、flushall操作,清空数据库
2、及时关闭redis服务器(防止dump.rdb),shutdown nosave
3、编辑aof文件,将日志中的flushall命令删除并重启服务即可。
步骤一:
在第二个窗口开启aop,并设置成总是保存没,然后重启redis
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEwMS9lMWVmODRkYmI5YmJjZDI5YmI0MTZhYTFkNDYyMzFjZC5KUEVH)
步骤二:
在第一个窗口中清空数据库
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwOC80ZmE5MDljYjk2MTY3MTRkMGZhYTkzNDRhZGU0YmExOC5KUEVH)
步骤三:
在第二个窗口中关闭redis
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg0Mi9lYWI3ZjI1NTI5ZmJiNzc2ZWY0ZDBiYjk5MDAyZGEyMi5KUEVH)
步骤四:
修改appendonly.aof文件,将最后的命令flushall删除
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkzMS80Mjc5NTNlNGNiY2EwOWIwYWJhOGQwNGI4MDQ3Y2ZjMy5KUEVH)
步骤五:
在第一个窗口启动redis,然后查询数据库内容
![【Redis学习】:redis持久化 【Redis学习】:redis持久化](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI1NC8wNWRiOTc0YTFiY2IxYzJjMDk4MWVmMTBhNTQ0MTMyNi5KUEVH)