前言
redis的所有数据都是保存到内存中的, 那么, 如果出现了断电情况, 是不是就会丢失数据.
那有什么办法来解决这个数据丢失问题呢?
持久化
redis作为这么牛B的软件, 这方面当时是考虑过的, 所以redis给出了两种方案.
打开redis.conf配置文件, 这个文件在前面安装的时候提到过.
方案一: 默认 rdb
rdb: 快照形式, 定期把内存中当前时刻的数据保存到磁盘中.
1. 如果15min内, 有 >=1 个值发生了改变, 则15min保存一次快照文件
2. 如果5min内, 有 >=10 个值发生了改变, 则5min会保存一次快照文件
3. 如果每分钟都有 >=10000 个值发生改变, 则每分钟都会保存到磁盘中
按照这种方式, 还是有可能会丢失数据的, 但是丢失数据的量会小很多. 这个是redis默认的持久化方案.
方案二: aof
aof: append only file. 把所有对redis数据库的增删改操作的命令, 保存到文件中, 数据库恢复时, 把所有命令执行一遍就可以了
当把这个设置成yes之后, 在bin目录下面, 就会出现 appendonly.aof 文件.
这种方式对磁盘的操作会变得很频繁, 这会导致存储速度慢一些.
正常情况下, 不会出现数据丢失的, 主要是断电这种, 会丢失数据. 一般使用中, 默认的持久化, 就满足使用了.
速度和持久化是成反比关系的. 根据具体的使用情况, 选择需要的方案.