文章目录
Redis 是一种内存数据库,是将数据保存在内存中的,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。
但是一旦进程退出,Redis 的数据就会丢失。
为了解决这个问题,Redis 有一种持久化方案叫做 RDB,是将内存中的数据保存到磁盘中,以避免数据丢失。
一、如何使用 RDB
有两种 RDB 触发机制: 手动触发 和 redis.conf 配置自动触发
1、手动触发
save :
该指令会阻塞当前 Redis 服务器,执行 save 指令期间,Redis 不能处理其他命令,直到 RDB 过程完成为止。
bgsave :
执行该命令时,Redis 后台异步执行快照操作,此时 Redis 仍然可以相应客户端请求。
具体原理是 Redis 进程执行 fork 操作创建子进程,RDB 持久化过程由子进程负责,完成后自动结束。
Redis 只会在 fork 期间发生阻塞,但是一般时间都很短。
需要注意的是,如果 Redis 数据量特别大, fork 时间就会变长,而且占用内存也会加倍。
2、自动触发
save 900 1 //表示900 秒内如果至少有 1 个 key 的值变化,则触发RDB
save 300 10 //表示300 秒内如果至少有 10 个 key 的值变化