上期我们学习了如何使用Java连接到redis,这期我们来学习如何在java中使用redis中的一些命令

1. set/get

 

可以看到jedis类中提供了很多set方法

    public static void test1(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set("key2", "v2");jedis.set("key3", "v3");System.out.println(jedis.get("key2"));}

调用结果:

可以看到 成功输出了v2

我们也可以使用

String set(String var1, String var2, SetParams var3);

来使用带参数的set命令,我们需要先创建一个SetParams对象,这个对象中有一些参数相关的方法:

    public static void test1(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set("key2", "v2");jedis.set("key3", "v3");SetParams params = new SetParams();params.ex(10);//设置超时时间params.xx();//设置key存在才能创建jedis.set("key2", "666", params);System.out.println(jedis.get("key2"));System.out.println(jedis.ttl("key2"));}

 

2. exists / del 

    public static void test2(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set("key2", "v2");jedis.set("key3", "v3");System.out.println(jedis.exists("key3"));jedis.del("key3");System.out.println(jedis.exists("key3"));}

这里的del方法是支持变长参数的可以在参数列表中写多个参数来一次删除多个 

3. keys

    public static void test3(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set("key2", "v2");jedis.set("key3", "v3");Set<String> set = jedis.keys("*");System.out.println(set);}

 4. expire / pexire / type

    public static void test4(Jedis jedis) throws InterruptedException {jedis.flushAll();jedis.set("key1", "v1");jedis.set("key2", "123");jedis.set("key3", "v3");jedis.expire("key1", 5);jedis.pexpire("key2", 3000);sleep(2000);System.out.println(jedis.ttl("key1"));System.out.println(jedis.ttl("key2"));System.out.println(jedis.ttl("key3"));System.out.println("key1 type: " + jedis.type("key1"));}

5. String 类型命令

5.1 megt / mset

    public static void string1(Jedis jedis) throws InterruptedException {jedis.flushAll();jedis.mset("key1", "v1", "key2", "v2", "key3", "v3");List<String> list = jedis.mget("key1", "key666", "key2", "key3");System.out.println(list);}

5.2 getrange /setrange

    public static void string2(Jedis jedis) throws InterruptedException {jedis.flushAll();jedis.set("key1", "012345678");System.out.println(jedis.getrange("key1", 0, -1));System.out.println(jedis.getrange("key1", 2, 6));jedis.setrange("key1", 2, "abx");System.out.println(jedis.get("key1"));}

 

5.3 append / incr /incrby / decr /decrby 

    public static void string3(Jedis jedis) throws InterruptedException {jedis.flushAll();jedis.set("key1", "012345678");System.out.println(jedis.append("key1", "abc"));System.out.println(jedis.get("key1"));jedis.set("key2", "100");System.out.println(jedis.incr("key2"));System.out.println(jedis.incrBy("key2", 12));System.out.println(jedis.decrBy("key2", 12));System.out.println(jedis.decr("key2"));}

 

6. list命令 

6.1 lpush / rpush / lrange

    public static void list1(Jedis jedis)  {jedis.flushAll();jedis.lpush("list1", "111", "222", "333");jedis.rpush("list1", "000");System.out.println(jedis.lrange("list1", 0, -1));}

 

6.2 lpop /rpop

    public static void list2(Jedis jedis)  {jedis.flushAll();jedis.lpush("list1", "111", "222", "333");jedis.rpush("list1", "000");System.out.println(jedis.lrange("list1", 0, -1));System.out.println(jedis.lpop("list1"));System.out.println(jedis.lrange("list1", 0, -1));System.out.println(jedis.rpop("list1"));System.out.println(jedis.lrange("list1", 0, -1));}

6.3 blpop / brpop 

    public static void list3(Jedis jedis)  {jedis.flushAll();jedis.lpush("list1", "111", "222", "333");jedis.rpush("list1", "000");System.out.println(jedis.blpop(3, "list1"));System.out.println(jedis.brpop(3, "list1"));}

6.4  linsert / lindex / lset

    public static void list4(Jedis jedis)  {jedis.flushAll();jedis.lpush("list1", "111", "222", "333");jedis.rpush("list1", "000");System.out.println(jedis.lrange("list1", 0, -1));System.out.println(jedis.lindex("list1", 2));System.out.println(jedis.lset("list1", 2, "666"));System.out.println(jedis.linsert("list1", ListPosition.BEFORE, "666", "999"));System.out.println(jedis.lrange("list1", 0, -1));}

 

7. set命令 

7.1 sadd / smembers / sismember / scard / spop 

    public static void set1(Jedis jedis)  {jedis.flushAll();jedis.sadd("set1","000", "111", "222", "333");System.out.println(jedis.smembers("set1"));System.out.println(jedis.sismember("set1", "111"));System.out.println(jedis.sismember("set1", "666"));System.out.println(jedis.scard("set1"));System.out.println(jedis.spop("set1", 2));System.out.println(jedis.smembers("set1"));}

 7.2 sinter / sinterstore

    public static void set2(Jedis jedis)  {jedis.flushAll();jedis.sadd("set1","000", "111", "222", "333");jedis.sadd("set2","000", "111", "55", "666");System.out.println(jedis.sinter("set1", "set2"));System.out.println(jedis.sinterstore("set3", "set1", "set2"));System.out.println(jedis.smembers("set3"));}

 

8. hash类型命令 

8.1 hset / hmset / hget / hmget / hdel

    public static void hash1(Jedis jedis)  {jedis.flushAll();jedis.hset("hash1", "filed1", "v1");Map<String, String> map = new HashMap<>();map.put("filed2", "v2");map.put("filed3", "v3");map.put("filed4", "v4");jedis.hmset("hash1", map);System.out.println(jedis.hmget("hash1", "filed1", "filed2", "filed3", "filed4"));System.out.println(jedis.hdel("hash1", "filed", "filed1"));System.out.println(jedis.hmget("hash1", "filed1", "filed2", "filed3", "filed4"));}

 8.2 hkeys / hvals / hgetall / hlen

    public static void hash2(Jedis jedis)  {jedis.flushAll();jedis.hset("hash1", "filed1", "v1");Map<String, String> map = new HashMap<>();map.put("filed2", "v2");map.put("filed3", "v3");map.put("filed4", "v4");jedis.hmset("hash1", map);System.out.println(jedis.hlen("hash1"));System.out.println(jedis.hkeys("hash1"));System.out.println(jedis.hvals("hash1"));System.out.println(jedis.hgetAll("hash1"));}

8.3 hincrby / hincrbyfloat

    public static void hash3(Jedis jedis)  {jedis.flushAll();Map<String, String> map = new HashMap<>();map.put("filed2", "12");map.put("filed3", "10");map.put("filed4", "er");jedis.hmset("hash1", map);System.out.println(jedis.hincrBy("hash1", "filed2", 23));System.out.println(jedis.hincrByFloat("hash1", "filed3", -12.5));System.out.println(jedis.hgetAll("hash1"));
//        System.out.println(jedis.hincrBy("hash1", "filed4", 1)); // 报错}

9. zset命令 

9.1 zadd / zrange / zrevrange 

    public static void zset1(Jedis jedis)  {jedis.flushAll();jedis.zadd("zset1", 9, "a");Map<String, Double> map = new HashMap<>();map.put("b", 8D);map.put("c", 7D);map.put("d", 6D);jedis.zadd("zset1", 9, "a");jedis.zadd("zset1", map);System.out.println(jedis.zrange("zset1", 0, -1));System.out.println(jedis.zrangeWithScores("zset1", 0, -1));System.out.println(jedis.zrevrange("zset1", 0, -1));System.out.println(jedis.zrevrangeWithScores("zset1", 0, -1));}

 

9.2 zcard / zcount / zrangebyscore

    public static void zset2(Jedis jedis)  {jedis.flushAll();jedis.zadd("zset1", 9, "a");Map<String, Double> map = new HashMap<>();map.put("b", 8D);map.put("c", 7D);map.put("d", 6D);jedis.zadd("zset1", 9, "a");jedis.zadd("zset1", map);System.out.println(jedis.zcard("zset1"));System.out.println(jedis.zcount("zset1", 6, 8));System.out.println(jedis.zrangeByScore("zset1", 6, 8));System.out.println(jedis.zrangeByScoreWithScores("zset1", 6, 8));}

 

9.3 zpopmax / zpopmin / bzpopmax / bzpopmin 

    public static void zset3(Jedis jedis)  {jedis.flushAll();jedis.zadd("zset1", 9, "a");Map<String, Double> map = new HashMap<>();map.put("b", 8D);map.put("c", 7D);map.put("d", 6D);jedis.zadd("zset1", 9, "a");jedis.zadd("zset1", map);System.out.println(jedis.zrangeWithScores("zset1", 0, -1));System.out.println(jedis.zpopmax("zset1", 2));System.out.println(jedis.bzpopmin(1000, "zset1"));System.out.println(jedis.zrangeWithScores("zset1", 0, -1));}

 9.4 zrank / zrevrank / zscore / zrem

    public static void zset4(Jedis jedis)  {jedis.flushAll();jedis.zadd("zset1", 9, "a");Map<String, Double> map = new HashMap<>();map.put("b", 8D);map.put("c", 7D);map.put("d", 6D);jedis.zadd("zset1", 9, "a");jedis.zadd("zset1", map);System.out.println(jedis.zrank("zset1", "a"));System.out.println(jedis.zrevrank("zset1", "a"));System.out.println(jedis.zscore("zset1", "a"));System.out.println(jedis.zrem("zset1", "a", "b"));System.out.println(jedis.zrangeWithScores("zset1", 0, -1));}

9.5 zinterstore / zunionstore

    public static void zset5(Jedis jedis)  {jedis.flushAll();Map<String, Double> map = new HashMap<>();map.put("a", 9D);map.put("b", 8D);map.put("c", 7D);map.put("d", 6D);jedis.zadd("zset1", map);Map<String, Double> map2 = new HashMap<>();map2.put("a", 99D);map2.put("b", 0D);map2.put("e", 7D);map2.put("f", 6D);jedis.zadd("zset2", map2);//求交集保留大的score, key1权重为1, key2权重为2System.out.println(jedis.zinterstore("zset3", new ZParams().weights(1, 2).aggregate(ZParams.Aggregate.MAX), "zset1", "zset2"));//求交集保留大的score, key1权重为1, key2权重为2System.out.println(jedis.zunionstore("zset4", new ZParams().weights(1, 2).aggregate(ZParams.Aggregate.MAX), "zset1", "zset2"));System.out.println(jedis.zrangeWithScores("zset3", 0, -1));System.out.println(jedis.zrangeWithScores("zset4", 0, -1));}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87973.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87973.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87973.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决OSS存储桶未创建导致的XML错误

前言 在Java开发中&#xff0c;集成对象存储服务&#xff08;OSS&#xff09;时&#xff0c;开发者常会遇到一个令人困惑的错误提示&#xff1a; “This XML file does not appear to have any style information associated with it. The document tree is shown below.” 此…

Spring 表达式语言(SpEL)深度解析:从基础到高级实战指南

目录 一、SpEL是什么&#xff1f;为什么需要它&#xff1f; 核心价值&#xff1a; 典型应用场景&#xff1a; 二、基础语法快速入门 1. 表达式解析基础 2. 字面量表示 3. 属性访问 三、SpEL核心特性详解 1. 集合操作 2. 方法调用 3. 运算符大全 4. 类型操作 四、Sp…

算法导论第二十四章 深度学习前沿:从序列建模到创造式AI

第二十四章 深度学习前沿&#xff1a;从序列建模到创造式AI 算法的进化正在重新定义人工智能的边界 深度学习作为机器学习领域最活跃的分支&#xff0c;正以惊人的速度推动着人工智能的发展。本章将深入探讨五大前沿方向&#xff0c;通过原理分析、代码实现和应用场景展示&…

抽象工厂设计模式

1.问题背景&#xff1a; 现在有两个产品(Product)分别是手机壳(PhoneCase)和耳机(EarPhone)&#xff0c;但是他们会来自于各个生产厂商&#xff0c;比如说Apple和Android等等 那么至少会有四个产品&#xff0c;分别是安卓手机壳&#xff0c;安卓耳机&#xff0c;苹果手机壳&a…

GESP 3级 C++ 知识点总结

根据GESP考试大纲 (2024年3月版)&#xff0c;帮大家总结一下GESP 3级 C语言的知识点&#xff1a; 核心目标&#xff1a; 掌握C程序的基本结构&#xff0c;理解并能运用基础的编程概念解决稍复杂的问题&#xff0c;重点是函数、一维数组和字符串处理。 主要知识点模块&#x…

腾讯云主动型云蜜罐技术解析:云原生威胁狩猎的革新实践(基于腾讯云开发者社区技术网页与行业实践)

摘要 腾讯云主动型云蜜罐&#xff08;Active Cloud Honeypot&#xff09;通过动态诱捕机制和云原生架构&#xff0c;在威胁检测效率、攻击链还原深度、防御联动实时性等维度实现突破。相较于传统蜜罐&#xff0c;其核心优势体现在&#xff1a; 部署效率&#xff1a;分钟级完成…

企业微信wecom/jssdk的使用(入门)

概述 记录一个企业微信jssdk的使用&#xff0c;因为要用到图片上传、扫描二维码等工具。项目是uniapp开发的h5项目&#xff0c;fastadmin&#xff08;thinkphp5&#xff09;后端 先看官方文档 https://developer.work.weixin.qq.com/document/path/90547#%E5%BA%94%E7%94%A8…

大零售生态下开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新研究

摘要&#xff1a;在流量红利消退、零售形态多元化的背景下&#xff0c;大零售生态成为商业发展的新趋势。本文聚焦开源链动21模式、AI智能名片与S2B2C商城小程序在零售领域的协同应用&#xff0c;探讨其如何打破传统零售边界&#xff0c;实现流量变现与用户资产化。研究表明&am…

Scrapy全流程(一)

创建一个scrapy项目:scrapy startproject mySpider 生成一个爬虫:scrapy genspider douban movie.douban.com 提取数据:完善spider&#xff0c;使用xpath等方法 保存数据:pipeline中保存数据 2 创建scrapy项目 下面以抓取豆瓣top250来学习scrapy的入门使用&#xff1a;豆瓣…

【Elasticsearch】TF-IDF 和 BM25相似性算法

在 Elasticsearch 中&#xff0c;TF-IDF 和 BM25 是两种常用的文本相似性评分算法&#xff0c;但它们的实现和应用场景有所不同。以下是对这两种算法的对比以及在 Elasticsearch 中的使用情况&#xff1a; TF-IDF - 定义与原理&#xff1a;TF-IDF 是一种经典的信息检索算法&am…

【QT】控件二(输入类控件、多元素控件、容器类控件与布局管理器)

文章目录 1.输入类控件1.1 LineEdit1.2 Text Edit1.3 Combo Box1.4 SpinBox1.5 Date Edit & Time Edit1.6 Dial1.7 Slider 2. 多元素控件2.1 List Widget2.2 Table Widget2.3 Tree Widget 3. 容器类控件3.1 Group Box3.2 Tab Widget 4. 布局管理器4.1 垂直布局4.2 水平布局…

【Docker基础】Docker镜像管理:docker pull详解

目录 1 Docker镜像基础概念 1.1 什么是Docker镜像&#xff1f; 1.2 镜像与容器的关系 1.3 镜像仓库(Registry) 2 docker pull命令详解 2.1 基本语法 2.2 参数解释 2.3 拉取镜像的基本流程 2.4 镜像分层结构解析 3 docker pull实战指南 3.1 基本使用示例 3.2 指定镜…

PixPin:一个强大且免费的截图贴图工具

PixPin 是一款国产免费的截图工具&#xff0c;支持屏幕截图、屏幕录制&#xff08;GIF&#xff09;、文字识别&#xff08;OCR&#xff09;以及贴图等功能。 高效截图 PixPin 支持自由选择或自动检测窗口&#xff0c;自定义截图区域&#xff0c;像素级精确捕捉&#xff0c;延时…

【测试报告】论坛系统

一、项目背景 1.1 测试目标及测试任务 测试目标旨在保障功能无漏洞、流程顺畅&#xff0c;实现多端显示交互一致&#xff0c;达成高并发场景下响应时间&#xff1c;2 秒等性能指标&#xff0c;抵御 SQL 注入等安全攻击&#xff0c;提升 UI 易用性与提示友好度&#xff1b; 背…

30天pytorch从入门到熟练(day1)

一、总体工作思路 本项目采用“从零构建”的策略&#xff0c;系统性地开展了深度学习模型的开发与优化工作。其目标在于通过全流程自研方式&#xff0c;深入理解模型构建、训练优化、推理部署的关键技术环节。整体路径分为以下核心阶段&#xff1a; 模型初步构建&#xff1a;以…

Subway Surfers Blast × 亚矩阵云手机:手游矩阵运营的终极变现方案

引爆全球&#xff1a;Subway Surfers Blast的流量红利​​ 随着Sybo Games最新力作《Subway Surfers Blast》全球上线&#xff0c;这款休闲消除游戏迅速席卷各大应用商店榜单。对于手游推广者而言&#xff0c;如何高效获取这波流量红利&#xff1f;​​亚矩阵云手机专业手游推…

mysql join的原理及过程

连接过程 每获得一条驱动表记录&#xff0c;就立即到被驱动表寻找匹配的记录。 对于两表连接来说&#xff0c;驱动表只会被访问一遍&#xff0c;但被驱动表却要被访问好多遍;具体访问几遍取决于对驱动表执行单表查询后的结果集中有多少条记录。 ​ 对于内连接来说&#xff0…

Hologres的EXPLAIN和EXPLAIN ANALYZE简介

文章目录 一、执行计划1、概念简介2、使用方式①、EXPLAIN②、EXPLAIN ANALYZE 二、算子解读1、SCAN2、Index Scan和 Index Seek3、Filter4、Decode5、Redistribution6、Join7、Broadcast8、Shard prune和Shards selected9、ExecuteExternalSQL10、Aggregate11、Sort12、Limit1…

49-Oracle init.ora-PFILE-SPFILE-启动参数转换实操

一早出现EMCC挂了&#xff0c;之后发现EMCC依赖的instance 挂了&#xff0c;重启startup后发现spfile无法启动。还是和小伙伴把基础问题搞清。spfile是动态文件、动态文件、动态文件&#xff0c;linux下vi看起来部分乱码部分是可编辑的&#xff0c;vi即使可以编辑也需要转换成p…

spring碎片

包的扫描过程 判断当前是否是文件夹获取文件夹里面的所有内容判断文件夹是否为空,为空的话直接返回如果文件夹不为空,则遍历文件夹里面的所有内容 遍历得到每个file对象,继续进行判断,如果还是文件,则进一步进行递归遍历得到的file对象不是文件夹,是文件得到包路径类名称-字符…