一、事务
mysql的事务特性:acid
redis的单条命令保证原子性,但是redis的事务不保证原子性!
redis的事务特性:一次性、顺序性、排他性
redis事务没有隔离级别的概念,既不存在脏读,幻读等
所有的命令在事务中不是立即执行,需要发起执行命令才执行
redis事务过程:
- 开启事务:multi
- 命令入队:。。。
- 执行事务:exec
discard:放弃事务
编译型异常(代码有问题!命令有错!),事务中所有的命令都不会执行:
运行时异常(例如1/0),错误命令抛出异常,其他命令正常执行:
二、监控
悲观锁
- 很悲观,认为什么时候都可能出现问题,无论做什么都会加锁!
乐观锁
- 很乐观,认为什么时候都不会出现问题,所以不会上锁,更新的时候才去判断在更新之前是否有人更改过数据。获取版本,比较版本。实现秒杀系统。
redis监视测试
正常执行的事务:
多线程修改值,使用watch可以当作redis的乐观锁操作,事务中途不能插入其他操作。
unwatch:退出监视,可以更新值
三、Jedis
什么是jedis:是redis官方推荐的Java连接开发工具,使用Java操作redis。
-
pom中引入依赖
-
编码测试
1.连接数据库
本地后台开启服务器:
2.操作命令
jedis的操作命令跟redis的命令一样。
3.断开连接:jedis.close()
附:idea的try-catch快捷键是ctrl+alt+T。