Redis-使用java代码操作Redis

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 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天前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
1天前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
20 5
|
1天前
|
Java
java代码和详细的代码应用
代码块分为局部、构造、静态和同步代码块。局部代码块控制变量生命周期,例如 `int a` 只在特定代码块内有效。构造代码块用于创建对象时执行附加功能,避免构造方法中代码重复。静态代码块随类加载执行一次,常用于初始化操作。同步代码块确保多线程环境下方法执行的原子性,通过 `synchronized` 关键字实现。
16 3
|
1天前
|
设计模式 算法 Java
【揭秘】如何巧妙运用Java模板方法模式,让你的代码优雅升级?
【8月更文挑战第30天】模板方法模式是一种行为型设计模式,它定义了算法的骨架并将某些步骤延迟到子类中,使子类能在不改变算法结构的情况下重定义特定步骤。此模式适用于具有共同结构但细节不同的场景,如角色升级系统。通过定义一个抽象类 `Character` 包含模板方法 `levelUp` 和抽象步骤方法,子类如 `Warrior` 和 `Mage` 可以实现具体逻辑。这种方式提供了良好的扩展性,确保算法结构不变,同时保持系统的稳定性和一致性,在数据处理和业务流程管理中广泛应用。
12 2
|
1天前
|
Java C# 容器
Java代码的第一行实战
这段代码展示了Java的基本结构,包括`package`(包)、`public`(访问修饰符)、`class`(类)、`static`(静态)、`void`(空)及`System.out.println()`(系统输出)。同时介绍了Java中的注释、数据类型(如`byte`、`short`、`int`、`long`、`float`、`double`、`char`、`boolean`)、变量、常量、运算符、类型转换、赋值运算符、关系运算符与逻辑运算符等内容。通过生动的例子帮助理解各种概念。
11 2
|
1天前
|
Java 开发者 UED
“Java开发者必看:异步编程实战解析,掌握这些技巧,让你的代码跑得更快!
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点。异步编程作为提高应用响应速度和吞吐量的技术,在Java中广泛采用。本文详细介绍了Java异步编程的概念与优势,并通过实战示例展示了如何利用Future、Callable及CompletableFuture在实际项目中实施异步编程,帮助开发者更好地理解和应用这一技术。
10 2
|
1天前
|
并行计算 Java 大数据
Java函数式编程:一场编程范式的革命,让你的代码焕发新生!
【8月更文挑战第30天】Java函数式编程是一种基于数学函数理论的编程范式,强调数据处理的不可变性和纯函数使用,通过将函数视为第一类对象,实现更简洁、易读的代码结构,在数据流处理与并行计算中尤为突出。与命令式编程关注执行步骤不同,函数式编程侧重描述计算目标而非具体操作流程,减少了状态变化,使代码更清晰易维护。在Java中,函数式编程通过降低副作用和状态依赖简化了复杂度,并提高了代码质量和测试性,尤其是在Java 8的Stream API中得到了充分体现,能够自动优化多核处理器上的并行处理性能。
11 2
|
1天前
|
Java
编写规范JAVA代码
本文档制定了Java编程规范,旨在确保系统源程序的可读性和可维护性,适用于所有Java开发、测试及维护过程。规范包括命名规则(如Package、Class及其成员等)与样式规定,强调统一风格以提高协作效率,并列举了具体示例与注意事项,如避免单字符变量名及使用有意义的反义词组命名等。
12 1
|
1天前
|
Java 测试技术 API
Java新纪元:模块化设计重塑开发体验,让代码如艺术品般优雅!
【8月更文挑战第30天】Java模块化设计是一种通过将应用程序分解为独立、可重用模块来提高代码可维护性和可扩展性的方法。其核心是自Java 9引入的Java Platform Module System(JPMS)。模块化设计增强了封装性,简化了依赖管理和系统维护,并通过按需加载模块提升了性能。每个模块有明确职责和接口,通过`module-info.java`文件定义。实战示例展示了如何创建和使用模块。最佳实践包括明确模块职责、减少依赖、使用模块描述符及模块化测试,从而构建健壮、可维护的应用程序。
10 1
|
1天前
|
Java 数据安全/隐私保护
Java代码的执行顺序和构造方法
构造方法是类的一种特殊方法,用于初始化新对象。在 Java 中,每个类默认都有一个与类名同名的构造方法,无需返回类型。构造方法不能用 static、final、synchronized、abstract 或 native 修饰。它可以重载,通过不同的参数列表实现多种初始化方式。构造方法在对象实例化时自动调用,若未显式声明,默认提供一个无参构造方法。构造代码块和静态代码块分别用于对象和类的初始化,按特定顺序执行。
14 0
下一篇
云函数