热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

快速入门RedisJavaApi操作Redis(全网最详细)

在日常的工作学习中需要操作Redis,JavaApi操作Redis是一个必不可少的技术那么我们直接进入正题目录1.创建maven项目导入相应的jar包2.创建初始化方

  在日常的工作学习中需要操作Redis,JavaApi操作Redis是一个必不可少的技术那么我们直接进入正题

 目录

         1.创建maven项目导入相应的jar包

         2.创建初始化方法

         3.操作Redis字符串类型

         4.操作Redis Hash类型

         5.操作Redis list类型

         6.操作Redis set类型

         7.关闭资源



1.创建maven项目导入相应的jar包

redis.clientsjedis2.9.0junitjunit4.12testorg.testngtestng6.14.3testorg.testngtestng7.1.0compileorg.apache.maven.pluginsmaven-compiler-plugin3.01.81.8UTF-8

2.创建初始化方法

// 实例连接池private JedisPool pool;/*** 初始化操作*/@BeforeTestpublic void init() {pool = new JedisPool("node01", 6379);}

3.操作Redis字符串类型

/*** 对字符串的操作*/
// @Testpublic void str() {// 创建连接对象Jedis resource = pool.getResource();// 添加resource.set("str01", "张三");// 查询String str01 = resource.get("str01");System.out.println("查询str01的结果\t" + str01);//添加多个resource.mset("str02", "李四", "str03", "1");// 查询多个List str02 = resource.mget("str02", "str03");System.out.println("查询str01 str02的结果\t" + str02);// 设置过期时间resource.setex("hello", 10, "hello");// key 存在是添加 成功返回1 失败返回 0System.out.println(resource.setnx("hello", "hello"));// 查询部分 startOffset开始的索引 endOffset 结束的索引 hellSystem.out.println("查询hello\t" + resource.getrange("hello", 0, 3));//查询长读 输入keySystem.out.println("查询hello的长度\t" + resource.strlen("hello"));// 追加resource.append("hello", "append");// 替换 key :操作的的key offset:从索引几开始替换 value:替换的内容resource.setrange("hello", 0, "AAA");System.out.println("查询hello\t" + resource.get("hello"));// 累加1resource.incr("str03");System.out.println("str03加1的结果\t" + resource.get("str03"));// 设置累加Nresource.incrBy("str03", 20);System.out.println("查询str03加20后的结果\t" + resource.get("str03"));// 减1resource.decr("str03");System.out.println("查询str03减1的结果\t" + resource.get("str03"));// 减Nresource.decrBy("str03", 10);System.out.println("查询str03减10的结果\t" + resource.get("str03"));}

4.操作Redis Hash类型

/*** 对 hash操作*/
// &#64;Testpublic void hash() {// 获取连接对象Jedis resource &#61; pool.getResource();// 添加数据resource.hset("hkey01", "name1", "李四");resource.hset("hkey02", "name2", "张三");//不存在是添加resource.hsetnx("hkey02", "name2", "赵刘");// 一次性设置多个值Map hash &#61; new HashMap<>();hash.put("name", "zhangsan");hash.put("age", "18");hash.put("sex", "1");resource.hmset("hkey03", hash);// 查询hkey02System.out.println("查询hkey02 name2\t" &#43; resource.hget("hkey02", "name2"));// 查询是否存在 hkey02中的name2 存在返回trueSystem.out.println("判断hkey02中的name2是否存在\t" &#43; resource.hexists("hkey02", "name2"));// 查询 hkey03 下的所有值System.out.println("hkey03的所有的值\t" &#43; resource.hgetAll("hkey03"));// 查询 hkey03的所有字段System.out.println("hkey03的字段\t" &#43; resource.hkeys("hkey03"));// 查询hkey03的数量System.out.println("查询hkey03的数量\t" &#43; resource.hlen("hkey03"));// 查询hkey03的多个值 name ageSystem.out.println("查询hkey03的多个值\t" &#43; resource.hmget("hkey03", "name", "age"));// 删除数据resource.hdel("hkey03", "sex");// 累加(1-N) hkey03中的age 10resource.hincrBy("hkey03", "age", 10);System.out.println("hkey03中的age结果\t" &#43; resource.hget("hkey03", "age"));}

5.操作Redis list类型

/*** 对list 操作*/
// &#64;Testpublic void list() {// 获取连接对象Jedis resource &#61; pool.getResource();// 可以添加一个或多个resource.lpush("listkey", "zhangsan", "lisi");// 插入头部resource.lpushx("listkey", "wangwu");//右边插入resource.rpush("listkey", "AA", "BB");// 插入尾部resource.rpushx("listkey", "CC");// 插入某个数据之前resource.linsert("listkey", BinaryClient.LIST_POSITION.BEFORE, "AA", "aa");// 插入某个数据之后resource.linsert("listkey", BinaryClient.LIST_POSITION.AFTER, "CC", "DD");// 查询listkeyd的所有数据 -1 默认查询所有数据System.out.println("查询listkey的所有数据\t" &#43; resource.lrange("listkey", 0, -1));// 通过索引查询System.out.println("通过索引查询\t" &#43; resource.lindex("listkey", 0));// 查询listkey的长度System.out.println("查询listkey的数据长度\t" &#43; resource.llen("listkey"));// 数据修减 保留 0 到 3 的索引resource.ltrim("listkey", 0, 3);System.out.println("查询listkey修减后的数据\t" &#43; resource.lrange("listkey", 0, -1));// 移除listkey的第一个数据resource.lpop("listkey");//移除listkey的最后一个数据resource.rpop("listkey");System.out.println("查询listke移除第一个和最后一个的数据\t" &#43; resource.lrange("listkey", 0, -1));// 移除最后一给数据保存到另一个列表resource.rpoplpush("listkey", "listkey");System.out.println("查询listkey数据\t" &#43; resource.lrange("listkey", 0, -1));}

6.操作Redis set类型

/*** 对set 操作*/
// &#64;Testpublic void set() {// 获取连接对象Jedis resource &#61; pool.getResource();// 向集合添加一个或多个resource.sadd("skey1", "zhnangsan", "lisi");resource.sadd("skey2", "wangwu", "lisi");// 查询结合的所有数据System.out.println("查询skey1的数据&#xff1a;" &#43; resource.smembers("skey1"));// 查询数据总量System.out.println("查询skey1的数据总量&#xff1a;" &#43; resource.scard("skey1"));// 查询差值System.out.println("查询skey1和skey2的差值" &#43; resource.sdiff("skey1", "skey2"));// 查询差值写入到新的集合resource.sdiffstore("skey3", "skey1", "skey2");// 查询交集System.out.println(resource.sinter("skey1", "skey2"));// 查询交集写入到新的集合resource.sinterstore("skey4", "skey1", "skey2");// 查询某一个数据是否在集合中System.out.println("查询zhnangsan是否在skey1\t" &#43; resource.sismember("skey1", "zhnangsan"));// 返回集合随机N个数据System.out.println("返回随机skey1\t" &#43; resource.srandmember("skey1", 1));// 查询并集System.out.println("查询skey1与skey2的并集\t" &#43; resource.sunion("skey1", "skey2"));// 查询并集写入到一个新的结合resource.sunionstore("skey5", "skey1", "skey2");//将数据在一个集合移动到另一个集合resource.smove("skey1", "skey2", "zhangsan");// 移除结果中的某个数据resource.srem("skey2", "skey2", "zhangsan");}

7.关闭资源

/*** 关闭资源*/&#64;AfterTestpublic void close() {pool.close();}

在这里对Redis JavaApi的操作就结束了,喜欢的话点赞&#xff0c;加个关注

1


推荐阅读
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
混事珊远_692
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有