Redis高级特性---------事务与持久化与发布订阅

一、redis事务的用法

1.开启事务:multi

2.提交事务:exec   ( queued只是把指令放入队列中,没有执行)

Redis高级特性---------事务与持久化与发布订阅

3.取消事务:discard

Redis高级特性---------事务与持久化与发布订阅

4.redis事务不能保证同时成功或者失败进行提交或者回滚,比如下图中 姓名报错而年龄增加了

Redis高级特性---------事务与持久化与发布订阅

5.使用watch

watch命令可以为redis事务听check and set行为,也就是cas

被watch的key会被监视,检测它是否被修改,如果有至少一个key被修改了,整个事务都会取消

开启两个服务,在第一个服务器exec之前,另一个服务对watch的键进行修改操作。程序需要做的就是不断重试这个操作,知道没有发生碰撞。

这种形式的锁被称为乐观锁。

Redis高级特性---------事务与持久化与发布订阅

Redis高级特性---------事务与持久化与发布订阅

二、持久化

redis是一个支持持久化的内存数据库,redis需要经常将内存中的数据同步到硬盘来保证持久化。

1.默认采用RDB方式

  • Redis默认的方式,redis通过快照来将数据持久化到磁盘中。
  • redis.conf中修改持久化快照的条件:
  • redis.conf中可以指定持久化文件存储的目录
  • dbfilename dump.rdb
  • dir ./
  • Redis高级特性---------事务与持久化与发布订阅
  • 不足:如果就在每隔的这个时间内断机,会有部分缓存中的数据丢失。一般选择使用redis,不太在乎缓存中的数据丢失,数据库中还可以同步。如果数据库没有存储,redis还可以做集群保障。

2.AOF

  • Aof方式的持久化,是操作一次redis数据库,则将操作的记录存储到aof持久化文件中。
  • 开启aof方式:将redis.conf中的appendonly改为yes
  • Aof文件存储的目录和rdb方式的一样。
  • Aof文件存储的名称: appendfilename "appendonly.aof"
  • 如果redis重启,则数据从aof文件加载。
  • 时时持久化,数据不丢失。
  • 不足:但是性能耗费大。

三、发布订阅

使用subscribe [频道]  进行订阅监听

使用publish [频道] [内容]进行发布消息广播

Redis高级特性---------事务与持久化与发布订阅

Redis高级特性---------事务与持久化与发布订阅

上一篇:三十四、Linux 进程与信号——信号特点、信号集和信号屏蔽函数


下一篇:ping命令执行过程详解