使用redis时的疑问

使用redis时的疑问

1.为什么电脑在重启之后redis还有数据?

百度到的

这个人的问题是:重启之后数据怎么还在?不是会消失的嘛?数据库也变成了3个,默认不是16个的嘛?

有人答:

​ 1、重启后数据还在,是因为有持久化策略。redis默认开启rdb持久化策略,会产一个rdb.dump文件,重启时会从该文件导入数据。如果是配置了AOF持久化策略,也会产一个相应的文件,redis重启时会优先从这个文件导入数据。
​ 2、你现在从客户端看到db0,db1,db2这3个库,说明你现在只在这3个库存了数据,其它库未使用。通过命令行连接redis操作你会看到。

2.既然说redis有持久化策略,那么他的持久化策略是什么?

这是地址

答:

redis 提供了 rdb 和 aof 两种持久化机制, rdb 默认开启, aof 默认关闭。 
当两种持久化机制都开启时, redis 重启恢复数据时加载`aof`持久化的 appendonly.aof 文件,而 rdb 持久化的 dump.rdb 文件不会被加载到内存中。
情景:开启rdb,关闭aof 

	通过redis-cli SHUTDOWN这种方式停掉redis,这是一种安全的退出方式,redis会在退出的时候将内存中的数据立即生成一份完整的rdb快照。 
	通过kill -9杀死redis进程,这种方式会导致redis异常退出,从而导致内存中的数据没有到达save指定的检查点,进而丢失内存中的数据。
情景:开启rdb,关闭aof,待dump.rdb有数据后,再开启aof 

	redis持久化dump.rdb后,启用aof持久化,再重启redis,redis只会加载aof持久化的appendonly.aof文件,如果它不存在,那会创建一个新的空的文件,从而导致内存中丢失dump.rdb的数据。
	解决方式:停止redis,关闭aof,重启redis,确保dump.rdb数据恢复在内存中,使用命令行热修改redis配置的方式打开aof,此时redis就会以aof持久化的形式将内存中的数据写入appendonly.aof文件,然后停止redis,修改配置文件将aof手动打开。
情景:主从架构的master关闭rdb和aof持久化,slave作为master的数据热备 
..........>略

博客园这一篇更全一点

https://www.cnblogs.com/chenliangcl/p/7240350.html

posted @ 2019-07-15 15:28  xt12321  阅读(163)  评论(0)    收藏  举报