事务和持久化相关内容

未匹配的标注

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
  • 如果同时开始了 RDBAOF 的话, 当 Redis 突然宕机后, 会优先选择 AOF 持久化文件

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~