Redis中的事务
写在前面
众所周知,在关系型数据库中(eg:Mysql),事务是非常重要的知识,它最重要的四个特性是:原子性、持久性、隔离性和一致性。要么同时成功,要么同时失败
,这是我们学习Mysql中事务的基本原则,也就是原子性,而在Redis中,是不保证原子性的!!
Redis的事务
本质: 一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行,通过一次性、顺序性、排他性来执行一系列的命令
- 开启事务(multi)
- 执行的命令······
- 执行事务(exec)
取消事务(discard)
事务中如果是编译时错误,事务不会执行,如果是运行时异常,跳过这一行,继续执行下一行。
悲观锁
认为无论任何时候都会出现危险,所以无论任何时候都会加锁
乐观锁
认为无论任何时候都不会出现危险,所以无论任何时候都不会加锁,在更新数据的时候,判断是否有人修改了数据
监视(watch):使用监视,加锁
取消监视(unwatch):取消监视,重新将修改后的数据加锁