目录
一、事务
1.1 概述
1.1.1 简介
Redis中的事务是可以视为一个队列,即我们可以通过MULTI开始一个事务,这相当于我们声明了一个命令队列。接下来,我们向Redis中提交的每条命令,都会被排入这个命令队列。当我们输入EXEC命令时,将触发当前事务,这相当于我们从命令队列中取出命令并执行,所以Redis中一个事务从开始到执行会经历 开始事务 、 命令入队 和 执行事务 三个阶段。
1.1.2 组队
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 v1
QUEUED
127.0.0.1:6379> set k2 v2
QUEUED
127.0.0.1:6379>
1、可以用 discard命令取消
2、组队过程一旦发生异常,就会取消不会执行
1.1.3 执行
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 v1
QUEUED
127.0.0.1:6379> set k2 v2
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379>
1、执行过程一旦出现异常,执行出现异常的语句执行失败,其它照常执行。
1.2 锁
1.2.1 悲观锁
1.2.2 乐观锁
根据版本号来判断,假如两个人同时拿到1.0版本的数据,其中一个人速度较快,处理完毕后这份数据会产生1.1版本,那么另一个人在被处理前,手中的数据会先更新一下版本。
1.2.3 事务中测试乐观锁
客户端1
127.0.0.1:6379> set f 10
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incrby f 10
QUEUED
127.0.0.1:6379>
客户端2 给f加15
127.0.0.1:6379> get f
"10"
127.0.0.1:6379> incrby f 15
(integer) 25
127.0.0.1:6379>
客户端1 执行
127.0.0.1:6379> exec
1) (integer) 35
127.0.0.1:6379>
二、持久化存储之RDB
2.1 RDB概述
2.1.1 save 20 3
在.conf文件加入配置"save 20 3" 20秒内如果有3个key值变化,就持久化存储
2.1.1 优势
2.2 AOF
2.1.1 概述
三、主从复制
3.1 概述
主机用来保存写入的数据,然后复制到从机,读数据时,从从机读
3.2 服务挂掉
1、主挂掉,从还是从
2、从挂掉,重启后,会与原来的主失去连接,从新变为从后,会同步主的数据
3.3 薪火相传
从下面可以再挂从
3.4 反客为主
主挂掉后,从上位,变为主
3.5 哨兵模式 (反客为主的自动版)
1、会单独开启一个进程来监视主
2、主挂掉后,从上位变为主,主从新连接后,会变为从