Redis高级:持久化
Redis是运行在内存中的,这样虽然性能高,但是数据的安全却很难得到保证,一旦Redis服务出现宕机,那么存储在内存中的数据就会全部丢失,为了防止出现这样的问题,需要使用到Redis的持久化技术,即将内存中的数据保存在磁盘中,防止数据丢失
Redis有两种常见的持久化方案:分别为RDB持久化和AOF持久化
1 RDB持久化
1.1 RDB持久化
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认保存在Redis的运行目录中。
RDB持久化在四种情况下会执行:
- 执行save命令
- 执行bgsave命令
- Redis停机时
- 触发RDB条件时
1)save命令
执行下面的命令,可以立即执行一次RDB:
由于Redis是单线程的,而Save命令是让主线程去执行RDB,这也就意味着在RDB过程中,其他所有的命令是会被阻塞的,直到RDB执行完,主线程才能继续接收来自用户的命令。因此Save命令只有在数据迁移时才可能会用到。
2)bgsave命令
下面的命令可以异步执行RDB:
这个命令执行后会开启一条独立进程去完成RDB的操作,而主进程可以继续处理用户请求,不会受到影响。注意这里开启的是另一个进程,而并非子线程。
3&#x