当前位置: 首页 > news >正文

Redis基础篇-004 Redis的Java客户端

Redis客户端分为三类:

  • 命令行客户端
  • 图形化桌面客户端
  • 编程客户端(java客户端)

redis可视化工具和客户端

1、 Jedis快速入门

Jedis的官网地址: https://github.com/redis/jedis

1.1 新建一个Maven工程并引入以下依赖

<!--引入Jedis依赖-->
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.2.0</version>
</dependency><!--引入单元测试依赖-->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.8.2</version><scope>test</scope>
</dependency>

1.2  编写测试类并与Redis建立连接

private Jedis jedis;@BeforeEach //被该注解修饰的方法每次执行其他方法前自动执行
void setUp(){// 1. 获取连接jedis = new Jedis("192.168.230.88",6379);// 2. 设置密码jedis.auth("132537");// 3. 选择库(默认是下标为0的库)jedis.select(0);
}

1.3 编写一个操作数据的方法(这里以操作String类型为例)

@Test
public void testString(){// 1.往redis中存放一条String类型的数据并获取返回结果String result = jedis.set("url", "https://www.oz6.cn");System.out.println("result = " + result);// 2.从redis中获取一条数据String url = jedis.get("url");System.out.println("url = " + url);
}

1.4 编写一个释放资源的方法

    @AfterEach //被该注解修饰的方法会在每次执行其他方法后执行void tearDown(){// 1.释放资源if (jedis != null){jedis.close();}}

1.5 执行testString()方法后测试结果如图所示

2、Jedis连接池

3、SpringDataRedis介绍

4、SpringDataRedis快速入门

5、RedisSerializer配置

6、StringRedisTemplate

7、总结

RedisTemplate的两种序列化实践方案,两种方案各有各的优缺点,可以根据实际情况选择使用。

7.1 方案一

  1. 自定义RedisTemplate
  2. 修改RedisTemplate的序列化器为GenericJackson2JsonRedisSerializer

7.2 方案二

  1. 使用StringRedisTemplate
  2. 写入Redis时,手动把对象序列化为JSON
  3. 读取Redis时,手动把读取到的JSON反序列化为对象

相关文章:

Redis基础篇-004 Redis的Java客户端

Redis客户端分为三类&#xff1a; 命令行客户端图形化桌面客户端编程客户端&#xff08;java客户端&#xff09; redis可视化工具和客户端 1、 Jedis快速入门 Jedis的官网地址&#xff1a; https://github.com/redis/jedis 1.1 新建一个Maven工程并引入以下依赖 <!--引入…...

【数据结构和算法】---栈和队列的互相实现

目录 一、用栈实现队列1.1初始化队列1.2模拟入队列1.3模拟出队列1.4取模拟的队列头元素1.5判断队列是否为空 二、用队列实现栈2.1初始化栈2.2模拟出栈2.3模拟入栈2.4取模拟的栈顶元素2.5判读栈是否为空 一、用栈实现队列 具体题目可以参考LeetCode232. 用栈实现队列 首先要想到…...

机场信息集成系统系列介绍(6):机场协同决策支持系统ACDM

目录 一、背景介绍 1、机场协同决策支持系统是什么&#xff1f; 2、发展历程 3、机场协同决策参与方 4、相关定义 二、机场协同决策ACDM的建设目标 &#xff08;一&#xff09;机场协同决策支持系统的宏观目标 1、实现运行数据共享和前序航班信息透明化 2、实现地面资源…...

GO设计模式——17、解释器模式(行为型)

目录 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式的核心角色&#xff1a; 优缺点 代码实现 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式&#xff08;Interpreter Pattern&#xff09;提供了评估语言的语法或表达式的方式&am…...

基于SSM的大学生兼职平台的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM的大学生兼职平台的设计与实现,j…...

Ignite内存配置

配置内存 #1.内存架构 #1.1.概述 Ignite内存架构通过可以同时在内存和磁盘上存储和处理数据及索引&#xff0c;得到了支持磁盘持久化的内存级性能。 多层存储的运行方式类似于操作系统&#xff08;例如Linux&#xff09;的虚拟内存。但是这两种类型架构之间的主要区别是&…...

前端基础vue路由懒加载

为什么用路由懒加载 首屏组件加载速度更快一些&#xff0c;解决白屏问题&#xff0c;常言道需要就加载&#xff0c;不需要就先放一边 懒加载定义 懒加载简单来说就是延迟加载或按需加载&#xff0c;即在需要的时候的时候进行加载。 使用 常用的懒加载方式有两种&#xff1a;即…...

C++系列第九篇 数据类型下篇 - 复合类型(指针高级应用)

系列文章 C 系列 前篇 为什么学习C 及学习计划-CSDN博客 C 系列 第一篇 开发环境搭建&#xff08;WSL 方向&#xff09;-CSDN博客 C 系列 第二篇 你真的了解C吗&#xff1f;本篇带你走进C的世界-CSDN博客 C 系列 第三篇 C程序的基本结构-CSDN博客 C 系列 第四篇 C 数据类型…...

python三大开发框架django、 flask 和 fastapi 对比

本文讲述了什么启发了 FastAPI 的诞生&#xff0c;它与其他替代框架的对比&#xff0c;以及从中汲取的经验。 如果不是基于前人的成果&#xff0c;FastAPI 将不会存在。在 FastAPI 之前&#xff0c;前人已经创建了许多工具 。 几年来&#xff0c;我一直在避免创建新框架。首先&…...

html基础2

视频video <video src"视频的路径"controls"控制播放、暂停、音量等"autoplay"自动播放"loop"循环播放"width"视频播放器的宽度"height"视频播放器的高度"> </video>还有做浏览器兼容的方式&#xf…...

基于博弈树的开源五子棋AI教程[5 启发式搜索]

文章目录 1 最大化攻击者/最小化防守者排序2 置换表启发3 杀手表启发4 历史表启发历史表以及杀手表的维护初始化追加杀手表项清空杀手表 启发式搜索的姿势千奇百怪&#xff0c;本文只讨论一下几种 //搜索空间 #define Search_Space_MVA 0 //最优价值攻击者[分数最大] #d…...

JavaScript原型,原型链 ? 有什么特点?

一、原型 JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff0c;直到找到一个…...

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时,动态变化时无法及时刷新更新适配界面的问题

Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 目录 Unity 问题 之 ScrollView ,LayoutGroup,ContentSizeFitter 一起使用时&#xff0c;动态变化时无法及时刷新更新适配界面的问题 一、简单介绍…...

linux 中 C++的环境搭建以及测试工具的简单介绍

文章目录 makefleCMakegdb调试 与 coredumpValgrind 内存检测gtest 单元测试 makefile 介绍 安装 : sudo apt install make makefile 的规则: 举例说明 包括&#xff1a;目标文件 、 依赖文件 、 生成规则 使用 &#xff1a; make make clean CMake : CMake是一个…...

448. 找到所有数组中消失的数字

找到所有数组中消失的数字 描述 : 给你一个含 n 个整数的数组 nums &#xff0c;其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字&#xff0c;并以数组的形式返回结果。 题目 : LeetCode 448. 找到所有数组中消失的数字: 448. 找…...

为何在下雪天它“失宠”了,传统雪地靴居然不适合下雪穿

随着冬至的到来&#xff0c;一年之中最寒冷的“三九天”正式拉开序幕。近期各地纷纷下起了大雪&#xff0c;在这场大雪中雪地靴似乎“失宠”了。在社交媒体上&#xff0c;有网友吐槽“雪地靴根本不能下雪穿”&#xff0c;后面有不少网友纷纷分享了自己在雪地靴上尴尬的经历&…...

第34节: Vue3 调用内联处理程序中的方法

在UniApp中使用Vue3框架时&#xff0c;你可以在模板中直接调用组件内联处理程序中的方法。以下是一个示例&#xff1a; <template> <view> <button click"handleClick">Click me</button> <p>{{ message }}</p> </view&…...

JavaScript--明明白白Promise (Park One)

明明白白Promise (Park One) Promise是一种用于处理异步操作的特殊对象。它代表了一个尚未完成但最终会完成的操作&#xff0c;并可以在操作完成后返回结果或错误。 Promise有三种状态&#xff1a;pending&#xff08;进行中&#xff09;、fulfilled&#xff08;已完成&#…...

el-form与el-upload结合上传带附件的表单数据(后端篇)

1.写在之前 本文采用Spring Boot MinIO MySQLMybatis Plus技术栈&#xff0c;参考ruoyi-vue-pro项目。 前端实现请看本篇文章el-form与el-upload结合上传带附件的表单数据&#xff08;前端篇&#xff09;-CSDN博客。 2.需求描述 在OA办公系统中&#xff0c;流程表单申请人…...

postMessage——不同源的网页直接通过localStorage/sessionStorage/Cookies——技能提升

最近遇到一个问题&#xff0c;就是不同源的两个网页之间进行localstorage或者cookie的共享。 上周其实遇到过一次&#xff0c;觉得麻烦就让后端换了种方式处理了&#xff0c;昨天又遇到了同样的问题。 使用场景 比如从网页A通过iframe跳转到网页B&#xff0c;而且这两个网页…...

Claude Desktop Pro Client:打造本地化AI工作台的架构设计与实践

1. 项目概述与核心价值最近在折腾AI助手本地化部署的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“Claude Desktop Pro Client”。光看名字&#xff0c;你可能会觉得这又是一个给Claude官方桌面端套壳的第三方客户端&#xff0c;但实际深入把玩之后&#xff0c;我…...

木质防火门基础选购核心要点

在现代建筑消防配套设施体系中&#xff0c;木质防火门凭借外观质感柔和、适配各类室内装修风格、现场安装便捷灵活等优势&#xff0c;被广泛应用于住宅楼宇、商业综合体、办公写字楼、酒店公寓等各类民用与公共建筑场景&#xff0c;是建筑防火分隔、阻断烟火蔓延的核心安防构件…...

Agent史上最全八股,来啦!

涉及到 RAG、MCP、Skills 等 12 个方向&#xff0c;共计 200 多个问题。 因为最近一段时间&#xff0c;我越来越明显地感觉到&#xff0c;前端 AI 方面的面试已经越来越倾向语 AI 化了。 以前很多同学去面试&#xff0c;面试官问的还是比较浅的东西。 你用过哪些大模型&#xf…...

基于MCP协议构建AI驱动的网络安全情报聚合与自动化分析平台

1. 项目概述&#xff1a;一个为AI工作流赋能的网络安全情报中枢 如果你是一名安全工程师、渗透测试人员&#xff0c;或者正在构建一个需要实时威胁情报的AI智能体&#xff0c;那么你肯定对这样的场景不陌生&#xff1a;为了评估一个供应商的风险&#xff0c;你需要在浏览器里同…...

通过Taotoken模型广场快速为项目选择合适的AI模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken模型广场快速为项目选择合适的AI模型 当你开始一个新项目&#xff0c;或者需要为现有应用集成AI能力时&#xff0c;面…...

云微推客系统开发|企业级私域裂变引擎,防丢单防错佣,合规二级分销

一、前言存量竞争时代&#xff0c;花钱买流量越来越贵&#xff0c;转化却越来越低。很多商家尝试推广裂变&#xff0c;却面临推广人员难管理、佣金结算混乱、订单归属不清、作弊刷单难防控、系统不合规易封号五大难题。传统人工记账、手动算佣模式&#xff0c;不仅效率低、成本…...

构建Discord与GitHub知识库:llmcord项目实战与RAG应用

1. 项目概述与核心价值 最近在折腾一些AI应用&#xff0c;发现一个挺有意思的现象&#xff1a;很多开发者习惯在Discord上讨论技术、分享进度&#xff0c;但Discord本身的消息流是“实时”且“瞬时”的&#xff0c;有价值的讨论很容易被淹没。同时&#xff0c;像GitHub Issues…...

在线 TTS 采购思维:不是买工具,是买可重复流程

&#x1f3af; 在线 TTS 采购思维&#xff1a;不是买工具&#xff0c;是买可重复流程 在语音合成市场日益成熟的今天&#xff0c;越来越多的团队开始引入在线 TTS。但一个普遍误区是&#xff1a;大家只关注单次合成效果&#xff0c;却忽略了流程的可重复性。 真正聪明的采购&…...

【弹簧】碟形弹簧内锥角数值计算Matlab实现

​✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。&#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…...

Claude API代理服务部署与定制:从零构建企业级AI网关

1. 项目概述与核心价值最近在折腾AI应用开发&#xff0c;特别是想把Claude的API能力整合到自己的项目里&#xff0c;发现直接调用官方API虽然稳定&#xff0c;但在一些特定场景下&#xff0c;比如需要统一接口管理、增加自定义逻辑层&#xff0c;或者想对请求/响应做些“手脚”…...