Jedis

我们要使用Java来操作Redis

什么是Jedis 是 Redis 官方推荐的java连接开发工具!使用Java操作Redis中间件,如果你要使用java操作redis,那么一定要对Jedis十分熟悉!

测试

1、导入对应的依赖

<!--导入jedis的包-->
<dependencies>
    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.2.3</version>
    </dependency>

    <!--fastjson-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.72</version>
    </dependency>
</dependencies>

2、代码测试

  • 连接数据库
  • 操作命令
  • 断开连接
public class TestPing {
    public static void main(String[] args) {
        //1、new Jedis 对象即可
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //jedis 所有的命令就是我们之前学习的命令,所以之前的指令学习很重要
        System.out.println(jedis.ping());
    }
}

输出

Jedis

常用API

String
List
Set
Hash
Zset

所有的 PAI 命令就是之前对应的的命令,一个都没变化

public class JedisTest {
    public static void main(String[] args) {
        keyTest();
    }

    public static Jedis init() {
        DefaultJedisClientConfig config = DefaultJedisClientConfig.builder().password("123456").build();
        return new Jedis("127.0.0.1", 6379, config);
    }

    public static void keyTest() {
        Jedis jedis = init();
        Set<String> keys = jedis.keys("*");
        keys.forEach(System.out::println);

        jedis.flushDB();

        // String
        jedis.mset("k1", "v1", "k2", "v2");
        jedis.mget("k1", "v1");

        // List
        jedis.lpush("myList", "1", "2", "3", "4", "5");
        List<String> myList = jedis.lrange("myList", 0, -1);
        myList.forEach(System.out::println);

        // set
        jedis.sadd("mySet", "one", "two", "three", "four", "five");
        Set<String> mySet = jedis.smembers("mySet");
        mySet.forEach(System.out::println);


        // hash
        HashMap<String, String> map = new HashMap<>();
        map.put("name", "hudu");
        map.put("age", "18");
        map.put("gender", "男");
        jedis.hset("myHash", map);
        Map<String, String> myHash = jedis.hgetAll("myHash");
        Set<Map.Entry<String, String>> entries = myHash.entrySet();
        entries.forEach(e -> {
            System.out.println(e.getKey() + "---" + e.getValue());
        });

        // zset
        jedis.zadd("account", 2500, "HuDu");
        jedis.zadd("account", 5000, "Lily");
        jedis.zadd("account", 2000, "Alex");
        List<String> account = jedis.zrange("account", 0, -1);
        account.forEach(System.out::println);
        List<Tuple> accountInfo = jedis.zrangeByScoreWithScores("account", 2000, 5000);
        accountInfo.forEach(a -> System.out.println(a.getElement() + "---" + a.getScore()));

    }
}

事务

public static void main(String[] args) {
        //创建客户端连接服务端,redis服务端需要被开启
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("hello", "world");
        jsonObject.put("name", "java");
        //开启事务
        Transaction multi = jedis.multi();
        String result = jsonObject.toJSONString();
        try{
            //向redis存入一条数据
            multi.set("json", result);
            //再存入一条数据
            multi.set("json2", result);
            //这里引发了异常,用0作为被除数
            int i = 100/0;
            //如果没有引发异常,执行进入队列的命令
            multi.exec();
        }catch(Exception e){
            e.printStackTrace();
            //如果出现异常,回滚
            multi.discard();
        }finally{
            System.out.println(jedis.get("json"));
            System.out.println(jedis.get("json2"));
            //最终关闭客户端
            jedis.close();
        }
    }
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

👍进步不少

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
247
粉丝
18
喜欢
217
收藏
62
排名:731
访问:9753
私信
所有博文
社区赞助商