【Redis】 Java操作Redis客户端命令——基础操作与字符串操作

🍃前言

本篇文章重点是,介绍一些Java 操作 Redis 的常见命令的使用。

总体分为以下6个部分进行介绍:

  1. 基础操作
  2. 字符串操作
  3. 列表操作
  4. 哈希表操作
  5. 集合操作
  6. 有序集合操作

本篇演示以下两种用法:

  1. 基础操作
  2. 字符串操作

🎍基础操作

准备工作代码如下:

public class EssentialDemo {
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
        try (Jedis jedis = jedisPool.getResource()){
            jedis.flushAll();
            // 在此处调用测试代码
            //testGetAndSet(jedis);
            //testExistsAndDel(jedis);
            //testKeys(jedis);
            //testExpireAndTtl(jedis);
            //testType(jedis);
        }
    }
}

这里博主只展示如何使用 Java 操作完成这些命令操作,如果有小伙伴对这部分命令作用不了解,可以参考博主写的【Redis】 常见的基本全局命令

🚩get 和 set

  • get:获取 key 所对应的 value,若当前key 不存在,则获取为null
  • set:设置当前 key 与 value

这两个命令本应该属于字符串操作,但是由于后面基本操作都离不开这两个操作,所以这里先行进行介绍一下。

public static void testGetAndSet(Jedis jedis) {
    System.out.println("测试 get 和 set");
    jedis.set("k1","111");
    jedis.set("k2","222");
    String result = jedis.get("k1");
    System.out.println("k1:" + result);
    result = jedis.get("k2");
    System.out.println("k2:" + result);
    result = jedis.get("k3");
    System.out.println("k3:" + result);
}

执行结果如下:

在这里插入图片描述

🚩exists 和 del

  • exists: 判断当前 key 是否存在
  • del: 删除当前key(可以为多个)可以,返回删除 key 的个数

代码示例如下:

public static void testExistsAndDel(Jedis jedis) {
    System.out.println("测试 exists 和 del");
    jedis.set("k1","111");
    jedis.set("k2","222");
    jedis.set("k3","333");
    boolean ret = jedis.exists("k1");
    System.out.println("k1 : " + ret);
    long n = jedis.del("k1");
    ret = jedis.exists("k1");
    System.out.println("n : " + n);
    System.out.println("k1 : " + ret);
    n = jedis.del("k2","k3");
    System.out.println("n : " + n);
    ret = jedis.exists("k2");
    System.out.println("k2 : " + ret);
    ret = jedis.exists("k3");
    System.out.println("k3 : " + ret);
}

执行情况如下:
在这里插入图片描述

🚩keys

  • keys:获取相应的key,可以使用通配符,返回一个集合

代码示例如下:

public static void testKeys(Jedis jedis) {
    System.out.println("测试 keys");
    jedis.set("k1","11");
    jedis.set("k2","22");
    jedis.set("k3","33");
    Set<String> arrayList = jedis.keys("*");
    System.out.println("* : " + arrayList);
}

执行结果如下:

在这里插入图片描述

🚩expire 和 ttl

  • expire:设置过期时间,使⽤ setex 直接设置 key 的同时指定过期时间. 单位为秒
  • ttl:显示剩余时间

代码示例如下:

public static void testExpireAndTtl(Jedis jedis)  {
    System.out.println("测试 expire 和 ttl");
    jedis.setex("key",2,"value");
    long ttl = 1;
    while (ttl > 0) {
        try {
            Thread.sleep(100);
            ttl = jedis.ttl("key");
            System.out.println("剩余:" + ttl);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
}

执行结果如下:

在这里插入图片描述

🚩type

  • type:显示当前key所对应value的类型

代码示例如下:

public static void testType(Jedis jedis) {
    jedis.set("key1", "value");
    System.out.println(jedis.type("key1"));
    jedis.lpush("key2", "a", "b", "c");
    System.out.println(jedis.type("key2"));
    jedis.hset("key3", "name", "zhangsan");
    System.out.println(jedis.type("key3"));
    jedis.sadd("key4", "111", "222", "333");
    System.out.println(jedis.type("key4"));
    jedis.zadd("key5", 1, "aaa");
    System.out.println(jedis.type("key5"));
}

执行结果如下:

在这里插入图片描述

🍀字符串操作

除去上面所介绍的 get 与 set ,还有以下操作。

首先准备工作代码如下:

public class StringDemo {
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");
            try (Jedis jedis = jedisPool.getResource()){
            	jedis.flushAll();
           		//在此处调用测试代码
            	//testMsetAndMget(jedis);
            	//testAppend(jedis);
            	//testSetrangeAndGetrange(jedis);
            	//testSetnx(jedis);
            	//testIncrDecr(jedis);
            	//testIncrbyDecrby(jedis);
        }
    }
}

这里博主只展示如何使用 Java 操作完成这些命令操作,如果有小伙伴对这部分命令作用不了解,可以参考博主写【Redis】 String 字符串类型常见命令

🚩mset 和 mget

  • mset:设置多个key与value
  • mset:获取多个key的value,返回一个列表

代码示例如下:

public static void testMsetAndMget(Jedis jedis) {
    jedis.mset("k1","11","k2","22","k3","33");
    List<String> list = jedis.mget("k1","k2","k3","k4");
    System.out.println("list : " + list);
}

执行结果如下:

在这里插入图片描述

🚩append

  • append:对原字符串进行拼接

代码示例如下:

public static void  testAppend(Jedis jedis) {
    System.out.println("测试 append ");
    jedis.set("k1","abc");
    String result = jedis.get("k1");
    System.out.println("result : " + result);
    jedis.append("k1","def");
    result = jedis.get("k1");
    System.out.println("result : " + result);
}

执行结果如下:

在这里插入图片描述

🚩getrange 和 setrange

  • setrange:覆盖字符串的⼀部分,从指定的偏移开始。
  • getrange:返回 key 对应的 string 的⼦串(左闭右闭)。

代码示例如下:

public static void testSetrangeAndGetrange(Jedis jedis) {
    System.out.println("测试 setrange 和 getrange");
    jedis.set("key","abcdefg");
    String result = jedis.getrange("key",0,-1);
    System.out.println("result : " + result);
    result = jedis.getrange("key",1,4);
    System.out.println("result : " + result);
    jedis.setrange("key",0,"123");
    result = jedis.getrange("key",0,-1);
    System.out.println("result : " + result);
}

执行结果如下:

在这里插入图片描述

🚩setnx

  • setnx:设置 key-value 但只允许在 key 之前不存在的情况下。

代码示例如下:

public static void testSetnx(Jedis jedis) {
    System.out.println("测试 setnx");
    jedis.set("k1","11");
    long n = jedis.setnx("k1","11");
    System.out.println(n);
    n = jedis.setnx("k2","22");
    System.out.println(n);
    String result = jedis.get("k2");
    System.out.println(result);
}

代码执行结如下

在这里插入图片描述

🚩incr 和 decr

  • incr:将 key 对应的 string 表⽰的数字加⼀
  • decr:将 key 对应的 string 表⽰的数字减⼀

代码示例如下:

public static void testIncrDecr(Jedis jedis) {
    System.out.println("测试 incr 和 decr");
    jedis.set("k1","5");
    String result = jedis.get("k1");
    System.out.println("此时result : " + result);
    jedis.decr("k1");
    result = jedis.get("k1");
    System.out.println("result - 1 : " + result);
    System.out.println("此时result : " + result);
    jedis.incr("k1");
    result = jedis.get("k1");
    System.out.println("result + 1 : " + result);
}

执行结果如下:

在这里插入图片描述

🚩incrby 和 decrby

  • incrby:将 key 对应的 string 表⽰的数字加上对应的值。
  • decrby:将 key 对应的 string 表⽰的数字减去对应的值。

代码示例如下:

public static void testIncrbyDecrby(Jedis jedis) {
    System.out.println("测试 incr 和 decr");
    jedis.set("k1","5");
    String result = jedis.get("k1");
    System.out.println("此时result : " + result);
    jedis.decrBy("k1",5);
    result = jedis.get("k1");
    System.out.println("result - 5 : " + result);
    System.out.println("此时result : " + result);
    jedis.incrBy("k1",5);
    result = jedis.get("k1");
    System.out.println("result + 5 : " + result);
}

执行结果如下:

在这里插入图片描述

⭕总结

关于《【Redis】 Java操作Redis客户端命令——基础操作与字符串操作》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇事问春风乄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值