事务和持久化相关内容
Redis
事务
一次事务操作, 该成功的成功, 该失败的失败
事务的执行过程: 先开启事务, 然后输入一些命令, 但是这些命令不会立马被执行, 而是先放到队列中, 当执行事务的时候, 这个队列中的所有命令才会被执行, 如果取消了事务, 那么队列中的所有命令都不会被执行
# 开启事务
multi
# 执行事务
exec
# 取消事务
discard
# watch 监听某一个 key 的变化, 配合事务来使用, 当监听了某一个 key 之后, 开启了事务, 如果在其他客户端中又修改了监听的 key 的话, 那么, 事务将会被自动取消, 同时会取消监听
# 如果执行了事务, 或者是取消了事务, 那么监听也会自动取消
watch 键名 [键名...]
unwatch 键名
Redis
持久化
RDB
持久化机制
RDB 持久化机制是
Redis
默认的持久化机制, 速度比较快, 而且存储的是一个二进制的文件, 占用的空间比较小, 传输起来比较方便RDB 持久化机制不能做到实时持久化, 所以如果
Redis
突然宕机的话, 会导致某些数据丢失在
Redis
配置文件中关于RDB
配置如下:# 在 900s 之内有 1 个 key 改变了, 那么就执行持久化 save 900 1 # 在 300s 之内有 10 个 key 改变了, 那么就执行持久化 save 300 10 # 在 60s 之内有 10000 个 key 改变了, 那么就执行持久化 save 60 10000 # 开启 RDB 持久化压缩 rdbcompression yes # RDB 持久化文件的名称 dbfilename dump.rdb
当执行
shutdown save
的时候, 也会进行数据持久化, 默认的话就会添加save
AOF
持久化机制
AOF
持久化机制默认是关闭的, 推荐同时开启RDB
持久化和AOF
持久化AOF
持久化的速度比较慢, 存储的是一个文本文件, 到后期后文件会比较大, 传输会比较慢配置如下:
# 开启 AOF 持久化 appendonly yes # AOF 持久化的名称 appendfilename "文件名" # AOF 持久化执行的时机 # 每执行一个写操作, 会立马持久化到文件中 appendfsync always # 每秒执行一次持久化, 默认的, 推荐 appendfsync everysec # 根据操作系统和环境的不同, 在一定时间内执行一次持久化, 这个时间是不确定的 appendfsync no
如果同时开始了
RDB
和AOF
的话, 当Redis
突然宕机后, 会优先选择AOF
持久化文件
推荐文章: