Redis-使用java代码操作Redis

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis-使用java代码操作Redis

一.Java连接Redis

1.加载驱动

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

2.创建连接

package com.zking.ssm.demo;
import redis.clients.jedis.Jedis;
/**
 * @author lz
 * @create 2023-11-03 17:00
 */
public class demo1 {
    public static void main(String[] args) {
        //建立连接
        Jedis jedis = new Jedis("localhost", 6379);
        //设置密码
        jedis.auth("123456");
        //测试是否连接
        System.out.println(jedis.ping());
    }
}

二.Java存储数据,string,hash,list,set,zzet

1.string类

package com.zking.ssm.demo;
import redis.clients.jedis.Jedis;
/**
 * @author lz
 * @create 2023-11-03 17:00
 */
public class demo2 {
    public static void main(String[] args) {
        //建立连接
        Jedis jedis = new Jedis("localhost", 6379); 
        //设置密码
        jedis.auth("123456");
        //增加 删除  修改  查询
//        jedis.set("name","liubin");//增加
        jedis.set("name","sb");//修改也就是增加覆盖
        System.out.println(jedis.get("name"));//查看
        jedis.setex("time",12,"要多少秒");
        System.out.println(jedis.ttl("time"));
    }
}

2. hash

package com.zking.ssm.demo;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
/**
 * @author lz
 * @create 2023-11-03 17:00
 */
public class demo3 {
    public static void main(String[] args) {
        //建立连接
        Jedis jedis = new Jedis("localhost", 6379); 
        //设置密码
        jedis.auth("123456");
        //增加 删除  修改  查询
        //无法使用那个  递归
         jedis.hset("user","name","liubin");
        jedis.hset("user","hoppy","play wzry");
        jedis.hset("user","sex","nan");
        //解决办法  通过封装实现
        HashMap  hashMap=new HashMap();
        hashMap.put("name","yangxin");
        hashMap.put("hoppy","guoba");
        hashMap.put("sex","weizhi");
        JedisUtils.setHashMap(jedis,"user",hashMap);
    }
}

在其中通过一个工具类实现递归

package com.zking.ssm.demo;
import redis.clients.jedis.Jedis;
import java.util.Map;
import java.util.Set;
/**
 * @author lz
 * @create 2023-11-03 18:26
 */
public class JedisUtils {
      public   static   void  setHashMap(Jedis jedis , String key, Map<String,String> hashMap){
                                   if (hashMap!=null && hashMap.size()>0){
                                         Set<String> keys=hashMap.keySet();
                                         for (String k:keys){
                                               jedis.hset(key,k,hashMap.get(k));
                                         }
                                   }
      }
}

3.其他

Redis列表(List)

//        # lpush key value1 value2 value3          #将一个或多个值插入到列表头部

jedis.lpush("java_hobby", "篮球", "足球", "羽毛球");

//        # llen key                                #获取列表的长度

Long java_hobby_len = jedis.llen("java_hobby");

System.out.println(java_hobby_len);

//        # lindex key index                        #根据索引获取列表中的元素

System.out.println(jedis.lindex("java_hobby", 0));

//        # lrange key start sop                    #查看指定范围内的元素

System.out.println(jedis.lrange("java_hobby", 0, 1));

Redis集合(Set)

//        # sadd key value1 [value2]                #向集合添加一个或多个元素

jedis.sadd("java_set_user","张三","李四","王五","张三丰");

//        # scard key                               #获取集合中的元素数量

System.out.println(jedis.scard("java_set_user"));

//        # exists key                              #是否存在

System.out.println(jedis.exists("java_set_user"));

4.需要ta的地方

1.存储基本上不会变化的数据 ,然后这些数据又被重复使用

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
15 6
|
7天前
|
存储 Java 开发者
【Java新纪元启航】JDK 22:解锁未命名变量与模式,让代码更简洁,思维更自由!
【9月更文挑战第7天】JDK 22带来的未命名变量与模式匹配的结合,是Java编程语言发展历程中的一个重要里程碑。它不仅简化了代码,提高了开发效率,更重要的是,它激发了我们对Java编程的新思考,让我们有机会以更加自由、更加创造性的方式解决问题。随着Java生态系统的不断演进,我们有理由相信,未来的Java将更加灵活、更加强大,为开发者们提供更加广阔的舞台。让我们携手并进,共同迎接Java新纪元的到来!
33 11
|
5天前
|
并行计算 Java 开发者
探索Java中的Lambda表达式:简化代码,提升效率
Lambda表达式在Java 8中引入,旨在简化集合操作和并行计算。本文将通过浅显易懂的语言,带你了解Lambda表达式的基本概念、语法结构,并通过实例展示如何在Java项目中应用Lambda表达式来优化代码,提高开发效率。我们将一起探讨这一现代编程工具如何改变我们的Java编码方式,并思考它对程序设计哲学的影响。
|
5天前
|
安全 Java 测试技术
掌握Java的并发编程:解锁高效代码的秘密
在Java的世界里,并发编程就像是一场精妙的舞蹈,需要精准的步伐和和谐的节奏。本文将带你走进Java并发的世界,从基础概念到高级技巧,一步步揭示如何编写高效、稳定的并发代码。让我们一起探索线程池的奥秘、同步机制的智慧,以及避免常见陷阱的策略。
|
12天前
|
Java API 开发者
代码小妙招:用Java轻松获取List交集数据
在Java中获取两个 `List`的交集可以通过 `retainAll`方法和Java 8引入的流操作来实现。使用 `retainAll`方法更为直接,但会修改原始 `List`的内容。而使用流则提供了不修改原始 `List`、更为灵活的处理方式。开发者可以根据具体的需求和场景,选择最适合的方法来实现。了解和掌握这些方法,能够帮助开发者在实际开发中更高效地处理集合相关的问题。
11 1
|
14天前
|
Java
Java中的Lambda表达式:简化代码,提升效率
【8月更文挑战第31天】Lambda表达式在Java 8中引入,旨在使代码更加简洁和易读。本文将探讨Lambda表达式的基本概念、使用场景及如何通过Lambda表达式优化Java代码。我们将通过实际示例来展示Lambda表达式的用法和优势,帮助读者更好地理解和应用这一特性。
|
14天前
|
开发者 C# 存储
WPF开发者必读:资源字典应用秘籍,轻松实现样式与模板共享,让你的WPF应用更上一层楼!
【8月更文挑战第31天】在WPF开发中,资源字典是一种强大的工具,用于共享样式、模板、图像等资源,提高了应用的可维护性和可扩展性。本文介绍了资源字典的基础知识、创建方法及最佳实践,并通过示例展示了如何在项目中有效利用资源字典,实现资源的重用和动态绑定。
33 0
|
14天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码
【8月更文挑战第31天】 在Java 8的发布中,Lambda表达式无疑是最令人兴奋的新特性之一。它不仅为Java开发者提供了一种更加简洁、灵活的编程方式,而且还极大地提高了代码的可读性和开发效率。本文将通过实际代码示例,展示如何利用Lambda表达式优化和重构Java代码,让你的编程之旅更加轻松愉快。
|
14天前
|
Java 开发者
探索Java中的Lambda表达式:简化代码的现代方法
【8月更文挑战第31天】Lambda表达式在Java 8中首次亮相,为Java开发者提供了一种更简洁、灵活的编程方式。它不仅减少了代码量,还提升了代码的可读性和可维护性。本文将通过实际示例,展示Lambda表达式如何简化集合操作和事件处理,同时探讨其对函数式编程范式的支持。
|
14天前
|
Java 程序员 API
从代码中寻找平衡:’java代码块和具体的代码应用
Java 8 引入的 Lambda 表达式是一项革命性特性,使编写简洁、灵活且易维护的代码成为可能。Lambda 表达式作为一种匿名函数,支持任意数量参数和返回值,其基本语法为 `(parameters) -&gt; expression` 或 `(parameters) -&gt; { statements; }`。
29 0