依赖

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.6.1</version>
</dependency>

连接使用

public class Ping {

    public static void main(String[] args) {
        //1. new Jedis就建立连接
        Jedis jedis = new Jedis("127.0.0.1", 6379);

        System.out.println(jedis.ping());
    }

}

==Jedis所有API都与Redis命令一模一样==

事务

public class Transaction {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        System.out.println(jedis.flushDB());

        Map<String,String> user = new HashMap<>();
        user.put("name","doubly");
        user.put("hello","world");
        String jsonStr = JSONUtil.toJsonStr(user);

        redis.clients.jedis.Transaction multi = jedis.multi();
        try {
            multi.set("user1", jsonStr);
            multi.set("user2", jsonStr);
            //执行事务
            multi.exec();
        }catch (Exception ex){
            // 放弃事务
            multi.discard();
            ex.printStackTrace();
        }finally {
            System.out.println(jedis.get("user1"));
            System.out.println(jedis.get("user2"));

            //关闭连接
            jedis.close();
        }
    }
}

乐观锁

public class OptimisticLock {

    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1",6379);

        System.out.println(jedis.flushDB());

        jedis.set("money","100");
        jedis.set("out","0");

        jedis.watch("money");
        Transaction multi = jedis.multi();

        try{
            multi.incrBy("out",10);
            multi.decrBy("money",10);

            int i = 1/0;

            multi.exec();
            System.out.println("事务执行完成");
        }catch (Exception ex){
            System.out.println("放弃事务");
            System.out.println(multi.discard());
            ex.printStackTrace();
        }finally {
            System.out.println(jedis.get("money"));
            System.out.println(jedis.get("out"));
            jedis.close();
        }

    }
}