Jedis 原生之道:Redis 命令 Java 实现指南(二)

发布于:2025-07-07 ⋅ 阅读:(16) ⋅ 点赞:(0)

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~
🌱🌱个人主页:奋斗的明志
🌱🌱所属专栏:Redis

📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。

在这里插入图片描述

基础操作(通用命令)

在这里插入图片描述

一、set 和 get

public static void testGetSet(Jedis jedis) {
    System.out.println("set 和 get 的使用:");
    //先清空数据库
    //要避免上一组测试的残留数据影响到下一组测试的结果
    //清空当前数据库
    jedis.flushDB();
    //清空所有数据库
    jedis.flushAll();
    jedis.set("key","111");
    jedis.set("key2","222");
    //用于构建 Redis 的 SET 命令参数
    SetParams params = new SetParams();
    //设置超时时间
    params.ex(10);
    //仅在键不存在时操作
    //params.nx();
    //xx():仅在键已存在时操作
    params.xx();
    jedis.set("key","333",params);
    String value = jedis.get("key");
    System.out.println("value = " + value);
}

二、exists 和 del(判断是否存在和删除)

public static void test2(Jedis jedis){
    System.out.println("existe 和 del 的使用");
    jedis.flushAll();
    jedis.set("key","111");
    jedis.set("key2","222");
    jedis.set("key3","222");

    boolean result = jedis.exists("key");
    System.out.println("result = " + result);

    long result2 = jedis.del("key");
    System.out.println("result2 = " + result2);

    result = jedis.exists("key");
    System.out.println("result = " + result);

    result2 = jedis.del("key", "key2", "key3");
    System.out.println("result2 = " + result2);
}

三、keys

public static void test3(Jedis jedis){
    System.out.println("keys 的使用");
    jedis.flushAll();
    jedis.set("key","111");
    jedis.set("key2","222");
    jedis.set("key3","333");
    jedis.set("key4","444");
    //redis 中的 key 不能重复,不用在意顺序,用set来接收
    Set<String> keys = jedis.keys("*");
    System.out.println(keys);
}

四、expire 和 ttl (设置时间和查看时间)

public static void test4(Jedis jedis){
    System.out.println("expire 和 ttl 的使用");
    jedis.flushAll();
    jedis.set("key","111");
    jedis.expire("key",10);

    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
    long time = jedis.ttl("key");
    System.out.println("time = " + time);
}

五、type(查看类型)

public static void test5(Jedis jedis){
    System.out.println("type 的使用");
    jedis.flushAll();
    jedis.set("key","111");
    String type = jedis.type("key");
    System.out.println("type = " + type);

    jedis.lpush("key2","222");
    type = jedis.type("key2");
    System.out.println("type = " + type);

    jedis.hset("key3","f1","111");
    type = jedis.type("key3");
    System.out.println("type = " + type);

    jedis.sadd("key4","111","222","333");
    type = jedis.type("key4");
    System.out.println("type = " + type);

    jedis.zadd("key5",10,"zhangsan");
    type = jedis.type("key5");
    System.out.println("type = " + type);
}

字符串操作

一、mset 和 mget(批量操作的)

public static void test1(Jedis jedis) {
    System.out.println("mset 和 mget");
    //MGET 和 MSET 是用于批量操作键值对的命令,能够有效提升操作效率
    jedis.flushAll();

    jedis.mset("key1","111","key2","222","key3","333");
    //value 值可以重复,用list进行存储 
    List<String> values = jedis.mget("key1", "key2", "key3");
    System.out.println("values = " + values);
}

在这里插入图片描述

在这里插入图片描述

二、getrange 和 setrange(闭区间)

public static void test2(Jedis jedis) {
    System.out.println("getrange 和 setrange");
    jedis.flushAll();

    jedis.set("key","zxcvbnm");
    String result = jedis.getrange("key", 0, 1);
    System.out.println("result = " + result);

    jedis.setrange("key", 0, "ab");
    String value = jedis.get("key");
    System.out.println("value = " + value);
}

在这里插入图片描述

三、append

public static void test3(Jedis jedis) {
    System.out.println("append");
    jedis.flushAll();

    jedis.set("key","zxcvbnm");
    jedis.append("key","asdfghjk");
    String value = jedis.get("key");
    System.out.println("value = " + value);
}

在这里插入图片描述

四、incr 和 decr(自增和自减)

public static void test4(Jedis jedis) {
    System.out.println("incr 和 decr");
    jedis.flushAll();
    jedis.set("key","100");
    long result = jedis.incr("key");
    System.out.println("result = " + result);
    String value = jedis.get("key");
    System.out.println("value = " + value);
    result = jedis.decr("key");
    System.out.println("result = " + result);
    value = jedis.get("key");
    System.out.println("value = " + value);
}

在这里插入图片描述

列表操作

一、lpush 和 lrange

public static void test01(Jedis jedis) {
    System.out.println("lpush 和 lrange");
    jedis.flushAll();
    //头插
    jedis.lpush("key", "111", "222", "333");
    //可以支持负数
    List<String> result = jedis.lrange("key", 0, -1);
    System.out.println("result = " + result);
}

在这里插入图片描述

二、rpush(尾插)

public static void test02(Jedis jedis) {
    System.out.println("rpush 尾插");
    jedis.flushAll();
    jedis.rpush("key", "111", "222", "333");
    List<String> result = jedis.lrange("key", 0, -1);
    System.out.println("result = " + result);
}

在这里插入图片描述

三、lpop(头删)

public static void test03(Jedis jedis) {
    System.out.println("lpop");
    jedis.flushAll();
    jedis.rpush("key", "111", "222", "333");

    String result = jedis.lpop("key");
    System.out.println("result = " + result);

    result = jedis.lpop("key");
    System.out.println("result = " + result);

    result = jedis.lpop("key");
    System.out.println("result = " + result);

    result = jedis.lpop("key");
    System.out.println("result = " + result);
}

在这里插入图片描述

四、rpop(尾删)

public static void test04(Jedis jedis){
    System.out.println("rpop");
    jedis.flushAll();
    jedis.rpush("key", "111", "222", "333");

    String result = jedis.rpop("key");
    System.out.println("result = " + result);

    result = jedis.rpop("key");
    System.out.println("result = " + result);

    result = jedis.rpop("key");
    System.out.println("result = " + result);

    result = jedis.rpop("key");
    System.out.println("result = " + result);
}

在这里插入图片描述

五、blpop (带有阻塞时间等待的删除)

public static void test05(Jedis jedis){
    System.out.println("blpop");
    jedis.flushAll();
    jedis.lpush("key","111","222","333");
    List<String> results = jedis.blpop(100, "key");
    System.out.println("key:" + results.get(0));
    System.out.println("value:" + results.get(1));
}

六、llen

public static void test06(Jedis jedis){
    System.out.println("llen");
    jedis.flushAll();
    jedis.lpush("key","111","222","333");
    long result = jedis.llen("key");
    System.out.println("result = " + result);
}

集合操作

一、sadd 和 smembers

public static void test01(Jedis jedis) {
    System.out.println("sadd 和 smembers");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333");
    Set<String> result = jedis.smembers("key");
    System.out.println("result: " + result);
}

二、srem 和 sismember

public static void test02(Jedis jedis) {
    System.out.println("srem 和 sismember");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333");
    boolean result = jedis.sismember("key", "111");
    System.out.println("result: " + result);
    long key = jedis.srem("key", "111", "222");
    System.out.println("key:" + key);
    result = jedis.sismember("key", "222");
    System.out.println("result: " + result);
}

三、scard

public static void test03(Jedis jedis) {
    System.out.println("里面有几个元素 (scard)");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333", "444", "555");
    long result = jedis.scard("key");
    System.out.println("result: " + result);
}

四、spop

public static void test04(Jedis jedis) {
    System.out.println("随机删除一个元素 (spop)");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333", "444", "555");
    String result = jedis.spop("key");
    System.out.println("result: " + result);
}

五、sinter

public static void test05(Jedis jedis) {
    System.out.println("求交集 (sinter)");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333");
    jedis.sadd("key2", "111", "222", "444");

    Set<String> result = jedis.sinter("key", "key2");
    System.out.println("result: " + result);
}

在这里插入图片描述

六、sinterstore

public static void test06(Jedis jedis) {
    System.out.println("求交集合并到一个新的键里面 (sinterstore)");
    jedis.flushAll();
    jedis.sadd("key", "111", "222", "333");
    jedis.sadd("key2", "111", "222", "444");
    long len = jedis.sinterstore("key3", "key", "key2");
    System.out.println("len:" + len);

    Set<String> result = jedis.smembers("key3");
    System.out.println("result: " + result);
}

在这里插入图片描述

哈希表操作

一、hset 和 hget

public static void test01(Jedis jedis) {
    System.out.println("hset 和 hget");
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    Map<String, String> map = new HashMap<>();
    map.put("f2", "222");
    map.put("f3", "333");
    jedis.hset("key", map);
    String result = jedis.hget("key", "f1");
    System.out.println("result:" + result);
    result = jedis.hget("key", "f2");
    System.out.println("result:" + result);
    result = jedis.hget("key", "f100");
    System.out.println("result:" + result);
}

二、hexists

public static void test02(Jedis jedis) {
    System.out.println("判断是否存在 hexists");
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    jedis.hset("key", "f2", "111");
    jedis.hset("key", "f3", "111");
    boolean result = jedis.hexists("key", "f1");
    System.out.println("result:" + result);

    result = jedis.hexists("key", "f100");
    System.out.println("result:" + result);
}

三、hdel

public static void test03(Jedis jedis) {
    System.out.println("删除操作 hdel");
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    jedis.hset("key", "f2", "111");
    jedis.hset("key", "f3", "111");
    long result = jedis.hdel("key", "f1", "f2");
    System.out.println("result:" + result);
    boolean hexists = jedis.hexists("key", "f1");
    System.out.println("hexists:" + hexists);
    hexists = jedis.hexists("key", "f2");
    System.out.println("hexists:" + hexists);
    hexists = jedis.hexists("key", "f3");
    System.out.println("hexists:" + hexists);
}

四、hkeys 和 hvals

public static void test04(Jedis jedis) {
    System.out.println("hkeys 和 hvals");
    jedis.flushAll();
    jedis.hset("key", "f1", "111");
    jedis.hset("key", "f2", "111");
    jedis.hset("key", "f3", "111");

    Set<String> hkeys = jedis.hkeys("key");
    List<String> hvals = jedis.hvals("key");
    System.out.println("hvals:" + hkeys);
    System.out.println("hvals:" + hvals);
}

五、hmget 和 hmset

public static void test05(Jedis jedis) {
    System.out.println("hmget 和 hmset");
    jedis.flushAll();
    Map<String,String> map = new HashMap<>();
    map.put("f1","111");
    map.put("f2","222");
    map.put("f3","333");

    jedis.hmset("key",map);
    List<String> hmget = jedis.hmget("key", "f1", "f2", "f3");
    System.out.println("hmget:" + hmget);
}

有序集合操作

一、zadd 和 zrange

public static void test01(Jedis jedis) {
    System.out.println("zadd 和 zrange");
    jedis.flushAll();
    jedis.zadd("key", 10, "zhangsan");
    Map<String, Double> map = new HashMap<>();
    map.put("lisi", 20.0);
    map.put("wangwu", 30.0);
    jedis.zadd("key", map);
    List<String> members = jedis.zrange("key", 0, -1);
    System.out.println("members:" + members);
    List<Tuple> zrangedWithScores = jedis.zrangeWithScores("key", 0, -1);
    System.out.println("zrangedWithScores = " + zrangedWithScores);

    String element = zrangedWithScores.get(0).getElement();
    double score = zrangedWithScores.get(0).getScore();
    System.out.println("element:" + element + ", score:" + score);
}

二、zcard

public static void test02(Jedis jedis) {
    System.out.println("zcard");
    jedis.flushAll();
    jedis.zadd("key", 10, "zhangsan");
    jedis.zadd("key", 20, "lisi");
    jedis.zadd("key", 30, "wangwu");
    long len = jedis.zcard("key");
    System.out.println("len:" + len);
}

三、zrem

public static void test03(Jedis jedis) {
    System.out.println("zrem");
    jedis.flushAll();
    jedis.zadd("key", 10, "zhangsan");
    jedis.zadd("key", 20, "lisi");
    jedis.zadd("key", 30, "wangwu");
    long n = jedis.zrem("key", "zhangsan");
    System.out.println("n:" + n);
    List<String> result = jedis.zrange("key", 0, -1);
    System.out.println("result:" + result);
}

四、zscore

public static void test04(Jedis jedis) {
    System.out.println("zscore");
    jedis.flushAll();
    jedis.zadd("key", 10, "zhangsan");
    jedis.zadd("key", 20, "lisi");
    jedis.zadd("key", 30, "wangwu");
    Double zscore = jedis.zscore("key", "zhangsan");
    System.out.println("zscore:" + zscore);
}

五、zrank

public static void test05(Jedis jedis) {
    System.out.println("获取下标(排名) zrank");
    jedis.flushAll();
    jedis.zadd("key", 10, "zhangsan");
    jedis.zadd("key", 20, "lisi");
    jedis.zadd("key", 30, "wangwu");
    Long zrank = jedis.zrank("key", "zhangsan");
    System.out.println("zrank:" + zrank);
}

在这里插入图片描述

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到