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

【Redis基础篇】Redis的Java客户端

温馨提示建议在PC端浏览~Redis的Java客户端在Redis官网中提供了各种语言的客户端地址https://redis.io/clientsJedis客户端Jedis的官网地址https://github.com/redis/jedis我们先来个快速入门1、引入依赖dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion3.7.0/version/dependency2、创建Jedis对象建立连接privateJedisjedis;BeforeEachvoidsetUp(){// 建立连接jedisnewJedis(192.168.100.128,6379);// 设置密码jedis.auth(123321);// 选择库jedis.select(0);}3、使用Jedis方法名与Redis命令一致TestvoidtestString(){// 插入数据方法名称就是redis命令名称非常简单Stringresultjedis.set(name,张三);System.out.println(result result);// 获取数据Stringnamejedis.get(name);System.out.println(name name);}4、释放资源AfterEachvoidtearDown(){// 释放资源if(jedis!null){jedis.close();}}Jedis连接池Jedis本身是线程不安全的并且频繁的创建和销毁连接会有性能损耗因此我们推荐大家使用Jedis连接池代替Jedis的直连方式。publicclassJedisConnectionFactory{privatestaticfinalJedisPooljedisPool;static{JedisPoolConfigjedisPoolConfignewJedisPoolConfig();// 最大连接jedisPoolConfig.setMaxTotal(8);// 最大空闲连接jedisPoolConfig.setMaxIdle(8);// 最小空闲连接jedisPoolConfig.setMinIdle(0);// 设置最长等待时间 msjedisPoolConfig.setMaxWaitMillis(200);jedisPoolnewJedisPool(jedisPoolConfig,192.168.150.101,6379,1000,123321);}// 获取Jedis对象publicstaticJedisgetJedis(){returnjedisPool.getResource();}}SpringDataRedis客户端SpringData是Spring中数据操作的模块包含对各种数据库的集成其中对Redis的集成模块就叫做SpringDataRedis官网地址https://spring.io/projects/spring-data-redis提供了对不同Redis客户端的整合Lettuce和Jedis提供了RedisTemplate统一API来操作Redis支持Redis的发布订阅模型支持Redis哨兵和Redis集群支持基于Lettuce的响应式编程支持基于JDK、JSON、字符串、Spring对象的数据序列化及反序列化支持基于Redis的JDKCollection实现SpringDataRedis中提供了RedisTemplate工具类其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类型中SpringDataRedis快速入门SpringBoot已经提供了对SpringDataRedis的支持使用非常简单1、引入依赖!--Redis依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--连接池依赖--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency2、在application.yml配置Redis信息spring:redis:host:192.168.100.128port:6379password:123321lettuce:pool:max-active:8#最大连接max-idle:8#最大空闲连接min-idle:0#最小空闲连接max-wait:100#连接等待时间3、注入RedisTemplateAutowiredprivateRedisTemplateredisTemplate;4、编写测试SpringBootTestpublicclassRedisTest{AutowiredprivateRedisTemplateredisTemplate;TestvoidtestString(){// 插入一条string类型数据redisTemplate.opsForValue().set(name,李四);// 读取一条string类型数据ObjectnameredisTemplate.opsForValue().get(name);System.out.println(name name);}}SpringDataRedis的序列化方式RedisTemplate可以接收任意Object作为值写入Redis只不过写入前会把Object序列化为字节形式默认是采用JDK序列化得到的结果是这样的缺点可读性差内存占用较大我们可以自定义RedisTemplate的序列化方式代码如下BeanpublicRedisTemplateString,ObjectredisTemplate(RedisConnectionFactoryredisConnectionFactory)throwsUnknownHostException{// 创建TemplateRedisTemplateString,ObjectredisTemplatenewRedisTemplate();// 设置连接工厂redisTemplate.setConnectionFactory(redisConnectionFactory);// 设置序列化工具GenericJackson2JsonRedisSerializerjsonRedisSerializernewGenericJackson2JsonRedisSerializer();// key和 hashKey采用 string序列化redisTemplate.setKeySerializer(RedisSerializer.string());redisTemplate.setHashKeySerializer(RedisSerializer.string());// value和 hashValue采用 JSON序列化redisTemplate.setValueSerializer(jsonRedisSerializer);redisTemplate.setHashValueSerializer(jsonRedisSerializer);returnredisTemplate;}StringRedisTemplate尽管JSON的序列化方式可以满足我们的需求但依然存在一些问题如图为了在反序列化时知道对象的类型JSON序列化器会将类的class类型写入json结果中存入Redis会带来额外的内存开销。为了节省内存空间我们并不会使用JSON序列化器来处理value而是统一使用String序列化器要求只能存储String类型的key和value。当需要存储Java对象时手动完成对象的序列化和反序列化。Spring默认提供了一个StringRedisTemplate类它的key和value的序列化方式默认就是String方式。省去了我们自定义RedisTemplate的过程AutowireprivateStringRedisTemplatestringRedisTemplate;// JSON工具privatestaticfinalObjectMappermappernewObjectMapper();TestvoidtestStringTemplate()throwsJsonProcessingException{// 准备对象UserusernewUser(虎哥,18);// 手动序列化Stringjsonmapper.writeValueAsString(user);// 写入一条数据到redisstringRedisTemplate.opsForValue().set(user:200,json);// 读取数据StringvalstringRedisTemplate.opsForValue().get(user:200);// 反序列化Useruser1mapper.readValue(val,User.class);System.out.println(user1 user1);}小结RedisTemplate的两种序列化实践方案方案一1、自定义RedisTemplate2、修改RedisTemplate的序列化器为GenericJackson2JsonRedisSerializer方案二1、使用StringRedisTemplate2、写入Redis时手动把对象序列化为JSON3、读取Redis时手动把读取到的JSON反序列化为对象

相关文章:

【Redis基础篇】Redis的Java客户端

温馨提示:建议在PC端浏览~ Redis的Java客户端在Redis官网中提供了各种语言的客户端,地址:https://redis.io/clientsJedis客户端Jedis的官网地址:https://github.com/redis/jedis,我们先来个快速入门:1、引入…...

从开发机到K8s集群,DeepSeek量化服务上线倒计时:48小时极速部署SOP(含CI/CD流水线脚本)

更多请点击: https://kaifayun.com 第一章:DeepSeek量化部署方案 DeepSeek系列大模型(如DeepSeek-V2、DeepSeek-Coder)在推理阶段对计算资源和显存占用要求较高,量化部署是实现低延迟、低成本服务的关键路径。本章聚焦…...

长期项目使用Taotoken感受到的API服务稳定性与可靠性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期项目使用Taotoken感受到的API服务稳定性与可靠性 在持续数月的项目开发与线上服务运行中,我们团队将核心的AI能力构…...

为什么93%的Gemini集成应用在48小时内必须升级?权威发布:3个高危CVE编号+官方回滚方案

更多请点击: https://intelliparadigm.com 第一章:Gemini Bug修复公告 近日,我们在 Gemini 模型推理服务的 v2.4.1 版本中发现一个影响高并发场景下响应一致性的关键缺陷:当连续提交含嵌套 JSON Schema 的结构化请求时&#xff0…...

【AIGC内容竞争力突围关键】:为什么92%的ChatGPT使用者不会“讲故事”?资深NLP架构师首曝4层认知断层

更多请点击: https://kaifayun.com 第一章:AIGC内容竞争力突围的关键认知跃迁 当生成式AI从“能写”迈入“懂场景、知约束、可迭代”的新阶段,内容竞争力的本质已悄然迁移——它不再取决于单次输出的流畅度,而系于人机协同的认知…...

AutoCut终极教程:如何用文本编辑器3分钟剪出专业视频

AutoCut终极教程:如何用文本编辑器3分钟剪出专业视频 【免费下载链接】autocut 用文本编辑器剪视频 项目地址: https://gitcode.com/GitHub_Trending/au/autocut 还在为视频剪辑软件复杂的界面而头疼吗?AutoCut让你告别繁琐的视频编辑&#xff0c…...

长期使用 Taotoken Token Plan 套餐对于项目运营成本的实际感受

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用 Taotoken Token Plan 套餐对于项目运营成本的实际感受 1. 从按次计费到订阅套餐的转变 在项目初期,我们通常…...

3步精通League Akari:英雄联盟自动化辅助的终极配置方案

3步精通League Akari:英雄联盟自动化辅助的终极配置方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于LC…...

Taotoken控制台用量看板提供的洞察与规划价值

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken控制台用量看板提供的洞察与规划价值 对于依赖大模型API进行开发的项目团队而言,成本与用量的不透明常常是管理…...

对比直接使用原厂api体验taotoken在稳定性与成本上的差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用原厂 API 与 Taotoken 在稳定性与成本上的体验 作为一名个人开发者,我在日常项目中需要频繁调用大模型 AP…...

量子机器学习:首次光子实验实现明确量子优势,开启超低功耗AI新范式

1. 量子机器学习:从理论到实验的首次明确优势量子计算和人工智能,这两个听起来都充满未来感的领域,在过去几年里各自都取得了令人瞩目的进展。但一个核心问题始终悬而未决:量子力学那些“反直觉”的特性,比如叠加和纠缠…...

Taotoken的用量看板如何帮助团队清晰掌控AI支出

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的用量看板如何帮助团队清晰掌控AI支出 对于团队管理者而言,将大模型能力集成到业务流程中后,一个…...

光声光谱结合机器学习实现乳腺癌早期无创诊断的技术解析

1. 项目概述:当光声光谱遇上机器学习,我们如何“听”出乳腺癌的早期信号?在生物医学检测领域,我们一直在寻找一种能够“透视”组织生化本质的非侵入性“慧眼”。传统的超声看结构,MRI看水分子,但它们对早期…...

ComfyUI-WanVideoWrapper终极指南:10分钟掌握AI视频生成技术

ComfyUI-WanVideoWrapper终极指南:10分钟掌握AI视频生成技术 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper AI视频生成技术正以前所未有的速度改变内容创作方式,而Comfy…...

如何让Axure RP显示中文:三分钟搞定界面本地化

如何让Axure RP显示中文:三分钟搞定界面本地化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文…...

Gemini深度研究模式全解析(2024最新版API+多模态检索内参):谷歌内部技术白皮书级拆解

更多请点击: https://codechina.net 第一章:Gemini深度研究模式的核心定位与演进脉络 Gemini深度研究模式并非单纯的功能叠加,而是Google面向复杂知识工作场景构建的推理范式跃迁。它将多跳检索、跨模态证据聚合与可验证推理链生成深度融合&…...

免费获取Grammarly高级版Cookie:5分钟开启专业写作体验 ✨

免费获取Grammarly高级版Cookie:5分钟开启专业写作体验 ✨ 【免费下载链接】autosearch-grammarly-premium-cookie 免费白嫖使用Grammarly Premium高级版 项目地址: https://gitcode.com/gh_mirrors/au/autosearch-grammarly-premium-cookie 还在为Grammarly…...

Windows触控板终极优化:三指拖拽功能完整配置指南

Windows触控板终极优化:三指拖拽功能完整配置指南 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDragOnWind…...

3种方法快速上手Label Studio:终极数据标注工具完全指南

3种方法快速上手Label Studio:终极数据标注工具完全指南 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio …...

奇异线性系统与矩阵方程数值解法【附仿真】

✨ 长期致力于奇异线性方程组、鞍点问题、块二乘二线性方程组、矩阵方程、偏微分方程、最小范数最小二乘解、迭代方法、预处理、Schwarz-Christoffel映射、Sherman-Morrison-Woodbury公式研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕…...

英雄联盟智能助手:League Akari 的5大核心功能深度解析

英雄联盟智能助手:League Akari 的5大核心功能深度解析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari 是一款基于英…...

实战指南:ComfyUI-Impact-Pack图像智能修复与细节增强解决方案

实战指南:ComfyUI-Impact-Pack图像智能修复与细节增强解决方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: …...

高效突破小红书反爬:7个实用User-Agent伪装技巧与实战指南

高效突破小红书反爬:7个实用User-Agent伪装技巧与实战指南 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…...

解密Lua字节码反编译:unluac架构深度解析与实战指南

解密Lua字节码反编译:unluac架构深度解析与实战指南 【免费下载链接】unluac fork from http://hg.code.sf.net/p/unluac/hgcode 项目地址: https://gitcode.com/gh_mirrors/un/unluac 在Lua生态系统中,字节码反编译技术对于逆向工程、代码审计和…...

Pseudogen:让代码说人话,你的智能代码翻译官

Pseudogen:让代码说人话,你的智能代码翻译官 【免费下载链接】pseudogen A tool to automatically generate pseudo-code from source code. 项目地址: https://gitcode.com/gh_mirrors/ps/pseudogen 你是否曾面对一段复杂的代码,感觉…...

3分钟快速上手:Unpaywall一键免费解锁学术论文付费墙

3分钟快速上手:Unpaywall一键免费解锁学术论文付费墙 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywall-extension…...

Adobe-GenP 3.0终极指南:5分钟快速免费解锁Adobe全系列软件

Adobe-GenP 3.0终极指南:5分钟快速免费解锁Adobe全系列软件 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud高昂的订阅费用发…...

QiLink/道息实验室创始人简介:跨界工程师的“道息”实践录

QiLink/道息实验室创始人简介:跨界工程师的“道息”实践录我是徐玉生,一个用厨师的火候、瑜伽师的呼吸、教师的逻辑,搭建技术社区的“非典型工程师”。2013年,我同时拿到中式烹调师一级(高级技师)和高级瑜伽…...

衰老生物学领域首个1站式标准化DNA甲基化数据库

摘要 准确量化生物年龄对于解析衰老机制、研发高效干预手段至关重要。分子衰老时钟(尤其是基于DNA甲基化数据的表观遗传时钟)已成为衰老研究领域的核心工具。然而,目前缺少覆盖多年龄、多组织且格式统一的公开DNA甲基化数据集,导致表观遗传时钟研究难以高效推进。研究者在…...

港中文+深大:你吃的其实是假螃蟹!?

背景 贝类过敏是重大健康风险,影响全球约2%的人群。受交叉反应影响,开展跨物种的全面致敏蛋白谱分析对优化诊断与治疗至关重要。本研究旨在鉴定并比较6种广泛食用蟹类的致敏蛋白谱。 kahouchu@cuhk.edu.hk xiaojun1985918@szu.edu.cn christineyywai@cuhk.edu.hk #过敏…...