样例思考
1.首先连接redis服务器
- 执行如下指令帮助命令
help @transactions
可以看到redis中关于事务的指令主要包含exex、multi、unwatch、watch等。
2.使用multi开启一个事务
- 然后执行4个指令,观察值的变化效果。
可以发现,通过multi开启事务,然后执行后,虽然有2个指令报错,但是k1的值已经发生了改变。
3.redis事务分析
redis 通过 multi、exec、watch 等命令来实现事务(transaction)功能。
事务提供了一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端的命令请求,它会将事务中的所有命令都执行完毕,然后才去处理其他客户端的命令请求。
在传统的关系式数据库中,常常用 acid 性质来检验事务功能的可靠性和安全性。
在 redis 中,事务总是具有原子性(atomicity)、一致性(consistency)和隔离性(isolation),并且当 redis 运行在某种特定的持久化模式下时,事务也具有持久性(durability)。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论