Redis事务操作以及jedis操作redis
Redis事务
Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按顺序执行!
Redis单条命令是保证原子性的,但是事务不保证原子性!
- 特性:一次性、顺序性、排他性!执行一系列命令!
Redis没有隔离级别的概念!
所有的命令在事务中,并没有直接执行!只有发起命令的时候才会执行!
事务执行
- 开启事务(multi)
- 命令入队(其他命令)
- 执行事务(exec)
正常执行事务
放弃事务
Redis实现乐观锁
监控!watch
- 悲观锁:很悲观,认为什么时候都会出问题,无论做什么都会加锁!
- 乐观锁:很乐观,认为什么时候都不会出问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改过数据
Redis监视测试
测试多线程修改值,使用watch可以当做redis的乐观锁操作
如果修改修改,获取最新的值就可以了
Jedis
是官方推荐的java连接开发工具!使用java操作Redis,那么一定要对Jedis十分的熟悉!
测试
- 导入对应的依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
编码测试
- 连接数据库
public class TestPing {
public static void main(String[] args) {
//新建jedis对象
Jedis jedis = new Jedis("192.168.184.135", 6379);
// jedis所有的命令就是我们之前学习的指令
System.out.println(jedis.ping());
}
}
- 操作命令
- 断开连接