Redis学习(四)---Jedis

Jedis定义

Jedis就是Redis官方推荐的Java连接开发工具,
相当是数据库在java中的JDBC,
里面封装了对Redis操作的方法

使用前提

下载Jedis工具包,可以去maven官网上找最新的版本

 <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.3.0</version>
        </dependency>

连接Redis

public class Ping {
    public static void main(String[] args) {

        String host = "127.0.1";
        int port = 6379;

        Jedis jedis = new Jedis(host,port);
        System.out.println(jedis.ping());
    }
}

和Redis命令一样,连接成功之后返回一个PONG

常用的API方法

Jedis的API方法和Redis的命令都是一致的: Redis命令

例如:

   jedis.set("key","v1");                           //设置键值
   jedis.sadd("skey","sv1");                        //向set中添加键值
        System.out.println(jedis.keys("*"));        //获取所有键
        System.out.println(jedis.get("key"));       //获取key
        System.out.println(jedis.smembers("skey")); //获取set中的skey

还有很多命令、不过所有的命令和之前学习的Redis命令都是一样的

Jedis事务操作

package com.zzs;

import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

/***
 * @author zzs
 * @deprecated Jedis理解事务
 */
public class JedisTransaction {
    public static void main(String[] args) {
        Jedis jedis  = new Jedis("127.0.1",6379);
        jedis.flushDB();

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name","zzs");
        jsonObject.put("adress","zhangzhou");
        String string = jsonObject.toJSONString();

        //jedis.watch();
        Transaction multi = jedis.multi();
        try {

            multi.set("key",string);
            multi.decr("key");     //属于运行时异常,不影响其他命令,所以没有抛出异常
            multi.exec();
        } catch (Exception e) {
            multi.discard();            //如果事务失败则放弃事务
            e.printStackTrace();
        } finally {

            System.out.println(jedis.get("key"));
            jedis.close();
        }

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43157543/article/details/107580681