当前位置: 首页 > news >正文

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

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

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

在这里插入图片描述

Redis

  • 基础操作(通用命令)
    • 一、set 和 get
    • 二、exists 和 del(判断是否存在和删除)
    • 三、keys
    • 四、expire 和 ttl (设置时间和查看时间)
    • 五、type(查看类型)
  • 字符串操作
    • 一、mset 和 mget(批量操作的)
    • 二、getrange 和 setrange(闭区间)
    • 三、append
    • 四、incr 和 decr(自增和自减)
  • 列表操作
    • 一、lpush 和 lrange
    • 二、rpush(尾插)
    • 三、lpop(头删)
    • 四、rpop(尾删)
    • 五、blpop (带有阻塞时间等待的删除)
    • 六、llen
  • 集合操作
    • 一、sadd 和 smembers
    • 二、srem 和 sismember
    • 三、scard
    • 四、spop
    • 五、sinter
    • 六、sinterstore
  • 哈希表操作
    • 一、hset 和 hget
    • 二、hexists
    • 三、hdel
    • 四、hkeys 和 hvals
    • 五、hmget 和 hmset
  • 有序集合操作
    • 一、zadd 和 zrange
    • 二、zcard
    • 三、zrem
    • 四、zscore
    • 五、zrank

基础操作(通用命令)

在这里插入图片描述

一、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);
}

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/267329.html

相关文章:

  • SpringAI与智能体入门
  • 探索 Ubuntu 上 MongoDB 的安装过程
  • NX二次开发常用函数——获取边对应的面 UF_MODL_ask_edge_faces
  • 使用 C++/Faiss 加速海量 MFCC 特征的相似性搜索
  • 电脑休眠设置
  • 【网络与爬虫 13】智能伪装:Scrapy-Fake-UserAgent反检测技术实战指南
  • springboot中使用线程池
  • 【Elasticsearch】检索排序 分页
  • 20. 有效的括号
  • BUUCTF在线评测-练习场-WebCTF习题[网鼎杯 2020 青龙组]AreUSerialz1-flag获取、解析
  • 【Flask】flask中get方法和post方法区别
  • CMake基础:条件判断详解
  • openai和chatgpt什么关系
  • 单用户模式、紧急模式、救援模式有什么区别
  • 动手学深度学习-学习笔记【二】(基础知识)
  • 若 VSCode 添加到文件夹内右键菜单中显示(通过reg文件方式)
  • 在 Windows 上安装和运行 Apache Kafka
  • Android Input 系列专题【事件的读取与分发】
  • 在SSM+vue项目中上传表单数据和文件
  • android开发中的 AndroidX 版本的查看 及 constraintLayout的简单用法
  • 【性能优化】程序性能优化:疏通胜于堵塞
  • 【Elasticsearch】检索高亮
  • 成为git砖家(12): 看懂git合并分支时冲突提示符
  • HTML初学者第三天
  • hono框架绑定cloudflare的d1数据库操作步骤
  • Redis基础的介绍与使用(一)(Redis简介以及Redis下载和安装)
  • Git 版本控制完全指南:从入门到精通
  • 【Halcon】WPF 自定义Halcon显示控件完整流程与 `OnApplyTemplate` 未触发的根本原因解析!
  • Web3 Study Log 003
  • 蓝牙墨水屏上位机学习(3)