Redis基础学习笔记(二)
目录
Redis-cli 交互命令参数
|
|
事务
事务的特性
1️⃣ 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
2️⃣ 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
3️⃣ 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
4️⃣ 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
#️⃣在Redis事务没有没有隔离级别的概念!
#️⃣在Redis单条命令式保证原子性的,但是事务不保证原子性!
实现事务
multi # 开启事务
exec # 执行事务
discard # 放弃事务
### 编译时报错,所有都不会被执行(一开始就报错)
### 运行时报错,其他命令正常执行
乐观锁
乐观锁的特性
1️⃣ 当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。
2️⃣ 没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。
watch key #监视锁
unwatch key #取消监视