Jedis(Java操作Redis的客户端)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Jedis(Java操作Redis的客户端)
  1. Jedis(Java操作Redis的客户端)

 1 什么是Jedis?

Jedis是官方推荐的Java连接开发工具,使用Java操作Redis的中间件,Jedis中的命令和Redis中是完全一致的

 2 如何操作Jedis?

     1 创建一个maven项目,或者空项目引入依赖也行(开发工具以IDEA为例)

网络异常,图片无法展示
|

    2 引入Jedis的包(Jedis和fastjson)
<!--导入Jedis的包(依赖)-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
</dependency>
<!--导入fastjson的包-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>
  3 编写代码进行测试(大概步骤如下三条)
 1 连接数据库
2 操作命令
3 结束测试(断开连接 shutdown)
4 基本使用Jedis连接Redis操作的代码
package com.wyh;
import redis.clients.jedis.Jedis;
/**
 * @program: redis
 * @description: 连接Redis数据库
 * @author: 魏一鹤
 * @createDate: 2021-11-11 23:20
 **/
public class RedisTest {
public static void main(String[] args){
// 1.new 一个Jedis
        Jedis jedis = new Jedis("127.0.0.1",6379); //本地服务加端口号
        //jedis中的所有命令和redis中的命令都是完全相同的
        System.out.println(jedis.ping());//返回pong表示本地redis连接成功
        String set = jedis.set("name", "wyh"); //设置一个键值对
        String name = jedis.get("name");  //获取name这个键对应的值
        System.out.println(name);
    }
}

网络异常,图片无法展示
|

5Jedis操作事务
package com.wyh;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
/**
 * @program: redis
 * @description: redis实现事务
 * @author: 魏一鹤
 * @createDate: 2021-11-14 17:00
 **/
public class RedisTransaction {
public static void main(String[] args){
//连接redis
        Jedis jedis = new Jedis("127.0.0.1", 6379);
//刷新redis数据库
        jedis.flushDB();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1","value1");
        jsonObject.put("key2","value2");
//开启事务
        Transaction multi = jedis.multi();
//转化json数据
        String jsonString = jsonObject.toJSONString();
//命令入队(进入队列)
        try {
            multi.set("user1",jsonString);
            multi.set("user2",jsonString);
//代码抛出异常,事务执行失败 
            int num=1/0;
//成功就执行事务
            multi.exec();
        } catch (Exception e) {
//失败就放弃事务
            multi.discard();
//自动捕获异常并打印出来
            e.printStackTrace();
        } finally {
            System.out.println(jedis.get("user1"));
            System.out.println(jedis.get("user2"));
//关闭redis
            jedis.close();
        }
    }
}
  1. SpringBoot整合Redis

SpringBoot操作数据:spring-data jpa jdbc mongodb redis

SpringData是和SpringBoot齐名的项目

 如果是SpringBoot2.0以上配置集群的话一定要使用lettuce.pool下面的属性

在SpringBoot2.x之后 jedis被替换成了lettuce

jedis和lettuce有什么区别呢?

 jedis:
用作于2.0之前,底层采用的是直连的serve,多个线程操作的话是不安全的,如果想要避免这种情况,需要使用jedis的连接池来解决 更像BIO(阻塞)模式(dubbo)
 lettuce:
底层采用netty(高性能的网络框架,异步请求),实例key在线程中进行共享,不存在线程不安全的情况,可以减少线程数据,性能更加的高  更像NIO模式
相关实践学习
基于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
目录
打赏
0
0
0
0
0
分享
相关文章
Redis 实操要点:Java 最新技术栈的实战解析
本文介绍了基于Spring Boot 3、Redis 7和Lettuce客户端的Redis高级应用实践。内容包括:1)现代Java项目集成Redis的配置方法;2)使用Redisson实现分布式可重入锁与公平锁;3)缓存模式解决方案,包括布隆过滤器防穿透和随机过期时间防雪崩;4)Redis数据结构的高级应用,如HyperLogLog统计UV和GeoHash处理地理位置。文章提供了详细的代码示例,涵盖Redis在分布式系统中的核心应用场景,特别适合需要处理高并发、分布式锁等问题的开发场景。
152 38
MCP客户端调用看这一篇就够了(Java版)
本文详细介绍了MCP(Model Context Protocol)客户端的开发方法,包括在没有MCP时的痛点、MCP的作用以及如何通过Spring-AI框架和原生SDK调用MCP服务。文章首先分析了MCP协议的必要性,接着分别讲解了Spring-AI框架和自研SDK的使用方式,涵盖配置LLM接口、工具注入、动态封装工具等步骤,并提供了代码示例。此外,还记录了开发过程中遇到的问题及解决办法,如版本冲突、服务连接超时等。最后,文章探讨了框架与原生SDK的选择,认为框架适合快速构建应用,而原生SDK更适合平台级开发,强调了两者结合使用的价值。
3108 31
MCP客户端调用看这一篇就够了(Java版)
|
3月前
|
在Java环境下如何进行Redis数据库的操作
总的来说,使用Jedis在Java环境下进行Redis数据库的操作,是一种简单而高效的方法。只需要几行代码,就可以实现复杂的数据操作。同时,Jedis的API设计得非常直观,即使是初学者,也可以快速上手。
230 94
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
98 6
Java获取客户端IP问题:返回127.0.0.1
总结:要解决Java获取客户端IP返回127.0.0.1的问题,首先要找出原因,再采取合适的解决方案。请参考上述方案来改进代码,确保在各种网络环境下都能正确获取客户端IP地址。希望本文对您有所帮助。
193 25
尼恩一键开发环境: vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
尼恩提供了一系列文章,旨在帮助开发者轻松搭建一键开发环境,涵盖Java分布式、高并发场景下的多种技术组件安装与配置。内容包括但不限于Windows和CentOS虚拟机的安装与排坑指南、MySQL、Kafka、Redis、Zookeeper等关键组件在Linux环境下的部署教程,并附带详细的视频指导。此外,还特别介绍了Vagrant这一虚拟环境部署工具,
尼恩一键开发环境: vagrant+java+springcloud+redis+zookeeper镜像下载(&制作详解)
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
253 30
|
6月前
|
Java Redis多限流
通过本文的介绍,我们详细讲解了如何在Java中使用Redis实现三种不同的限流策略:固定窗口限流、滑动窗口限流和令牌桶算法。每种限流策略都有其适用的场景和特点,根据具体需求选择合适的限流策略可以有效保护系统资源和提高服务的稳定性。
131 18
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问