Redis04:Redis事务操作以及jedis操作redis

Redis事务操作以及jedis操作redis

  • Redis事务
    • 事务执行
    • Redis实现乐观锁
  • Jedis
    • 编码测试

Redis事务

Redis事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按顺序执行!

Redis单条命令是保证原子性的,但是事务不保证原子性!

  • 特性:一次性、顺序性、排他性!执行一系列命令!

Redis没有隔离级别的概念!
所有的命令在事务中,并没有直接执行!只有发起命令的时候才会执行!

事务执行

  • 开启事务(multi)
  • 命令入队(其他命令)
  • 执行事务(exec)

正常执行事务
Redis04:Redis事务操作以及jedis操作redis_第1张图片
放弃事务
Redis04:Redis事务操作以及jedis操作redis_第2张图片

Redis实现乐观锁

监控!watch

  • 悲观锁:很悲观,认为什么时候都会出问题,无论做什么都会加锁!
  • 乐观锁:很乐观,认为什么时候都不会出问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改过数据

Redis监视测试
Redis04:Redis事务操作以及jedis操作redis_第3张图片
测试多线程修改值,使用watch可以当做redis的乐观锁操作
Redis04:Redis事务操作以及jedis操作redis_第4张图片
如果修改修改,获取最新的值就可以了
Redis04:Redis事务操作以及jedis操作redis_第5张图片

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());
    }
}
  • 操作命令
  • 断开连接

你可能感兴趣的:(redis,redis,数据库,nosql)