redis集成到spring boot中使用
(一)添加依赖
redis服务器在官网中公开了自己使用的协议--RESP,所以我们可以使用这个协议来访问redis服务器,但是如果我们要自己实现库,那肯定是非常麻烦的,所以我们可以使用网上的库,我们直接调用接口,不需要关注redis协议的细节,我们这里使用的是jedis
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency>
只需要在pom文件中添加这个依赖
但是还有一个问题需要注意,我个人的redis是在windows环境上的所以不涉及到这个问题,如果我们不是windows上的redis服务器,那我们自己的windows电脑就无法直接通过本机ip来直接访问redis服务器了
所以我们就需要通过云服务器的外网ip来访问linux服务器

但是这样还远远不够,因为我们云服务器的默认端口6379是被防火墙给隔离起来的,我们是不可以直接访问到的,这也是为了保证我们的信息安全,因为要保证信息安全,所以我们也不可以把防火墙关闭
那我们不可以关闭防火墙开放redis关口,又想自己访问,这不是既要又要吗,这能行?
那这里有两种方法可以帮我们实现这个既要又要的需求:
1.你可以跟我一样,把redis服务器也运行在本机上,这样我们就可以使用本机ip直接访问
2.配置ssh端口转发,把云服务器的redis端口,映射到本地主机上(其实思想上还是把redis服务器运行在同一环境)
我们这里简单说一下ssh的端口转发功能,简单来说就是通过ssh的一个端口,来传递其他端口的数据
本身我们这里是需要通过windows主机,来访问云服务器的6379端口的,于是我们就构造一个特殊的ssh数据包,把要访问6379端口的请求,放到数据报里,此时我们的数据报就变成了这样

然后这个数据报就会通过ssh端口发给服务器,服务器中也有ssh服务器程序,他通过解析我们发送的数据包,然后把数据报就交给了6379端口
而同时一个服务器上,ssh可能需要给多个端口传递数据,这时候我们为了区分不同端口,就会把服务器的端口在本地用另一个端口来表示(只需要我们配置一下)

然后进行连接,端口转发就生效了
此时如果还不能在windows上执行,就可能使我们最开始安装redis服务器时,我们的一些设置有问题,比如要配置绑定的ip
这里默认是127.0.0.1,只能本机访问,不可以跨主机,要进行更改,也可能是我们开启了保护模式
默认是yes,如果开启了也不可以跨主机访问
此时就可以正确的在windows下使用redis了

(二)通过jedis进行redis的一些通用命令
我们在这里只会介绍一些有代表性的命令,因为这些命令和我们在redis客户端中讲的使用方法是一样的。
1)通用命令
1.set/get
设置和获取数据
首先我们的启动类长这个样子

这样我们就建立好连接了

2.exist/del
判断数据是否存在和删除数据

3.keys
查询key对应的value(注意这里的返回值为set类型)

4.expire/ttl
设置过期时间和查询过期时间(单位为s)

5.type
获取key对应的value

2)字符串操作
1.mget/mset
设置或者获取字符串

2.append
在指定的key对应的value加上字符串

3.getrange/setrange
获取指定区间字符串和设置指定区间字符串(都是闭区间)

4.setnx
如果key没有value的时候才可以被成功设置
5.psetex/pttl
对value是字符串类型的key设置过期时间和查询过期时间

6.incr/decr

7.incrby/decrby

3)列表操作
1.lpush/lpop

2.rpush/rpop

3.lrange

4.brpop/blpop
返回值list是一个二元组[0]为key[1]为value,超时时间设为0表示死等

5.lindex

6.lset

4)哈希表操作
1.hset/hget

2.hexists/hdel

3.hkeys/hvals

4.hincrby/hincrbyfloat

5)集合操作
1.sadd/smembers

2.srem/sismember

3.scard

4.sinter/sinterstore

6)有序集合
1.zadd/zrange

2.zrem/zcard

3.zcount

4.zpopmax/zpopmin
我们注意这里面有一个新的类tuple,是我们jedis中的一个新类,本质上是个二元组,在这里,里面存储的是member和score

5.zscore/zincrby

相关文章:
redis集成到spring boot中使用
(一)添加依赖 redis服务器在官网中公开了自己使用的协议--RESP,所以我们可以使用这个协议来访问redis服务器,但是如果我们要自己实现库,那肯定是非常麻烦的,所以我们可以使用网上的库,我们直接调…...
Spring Boot、Spring MVC和Spring有什么区别
人要长大,就要学会不断接受事件的变化 —— 24.10.14 spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以很方便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更方便将不同类不同方法中的共同处理…...
Flip动画
前言 最近在做复图标库功能时,感觉这个功能在使用上有些“生硬”。如随机删除一个图标,后面的元素在视觉上是“瞬间移动”过来补位的。想着做个小优化,简单加个动画效果吧。 看起来确实“花里胡哨”了,实现也很简单, …...
Java通过RAG构建专属知识问答机器人_超详细
RAG:融合检索与生成的文本精准生成技术 检索增强生成(RAG)是一种技术,它通过结合检索模型和生成模型来提高文本生成的准确性。具体来说,RAG首先利用检索模型从私有或专有的数据源中搜索相关信息,然后将这些…...
2.1 使用点对点信道的数据链路层
欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 通信信道类型2 数据链路3 帧4 透明传输5 差错检测 前言 在计算机网络通信中,数据链路层起着关键作用。它为直接相连的网络设备之间提供可靠的数据传输服务。…...
台式机来电自启动设置
在前司时,由于有些工作需要用到台式机,且一到节假日或者突然停电等情况,电脑每次都需要自己手动开机,后来研究了一下,发现可以在BIOS里面更改设置,从而变成关机的情况下,只要来电就能自动开机&a…...
【最新华为OD机试E卷-支持在线评测】考勤信息(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…...
netdata保姆级面板介绍
netdata保姆级面板介绍 基本介绍部署流程下载安装指令选择设置KSM为什么要启用 KSM?如何启用 KSM?验证 KSM 是否启用注意事项 检查端口启动状态 netdata和grafana的区别NetdataGrafananetdata各指标介绍总览system overview栏仪表盘1. CPU2. Load3. Disk…...
苹果最新论文:LLM只是复杂的模式匹配 而不是真正的逻辑推理
大语言模型真的可以推理吗?LLM 都是“参数匹配大师”?苹果研究员质疑 LLM 推理能力,称其“不堪一击”!苹果的研究员 Mehrdad Farajtabar 等人最近发表了一篇论文,对大型语言模型 (LLM) 的推理能…...
Python知识点:基于Python工具,如何使用Scikit-Image进行图像处理与分析
开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 基于Python的Scikit-Image图像处理与分析指南 在Python的科学计算生态系统中&am…...
MongoDB初学者入门教学:与MySQL的对比理解
🏝️ 博主介绍 大家好,我是一个搬砖的农民工,很高兴认识大家 😊 ~ 👨🎓 个人介绍:本人是一名后端Java开发工程师,坐标北京 ~ 🎉 感谢关注 📖 一起学习 &…...
Oracle AI Vector Search
Oracle AI Vector Search 是 Oracle Database 23ai 中引入的一项新技术,它允许用户在数据库中直接存储和高效查询向量数据。这项技术旨在简化应用程序的开发,并且支持不同维度和格式的向量。以下是 Oracle AI Vector Search 的一些关键特性和优势&#x…...
基于SpringBoot的健身会员管理系统实战分享
在这个充满活力的时代,我们自豪地呈现一款专为健身爱好者和专业人士设计的会员管理系统——一个集创新、效率与便捷于一体的解决方案。我们的系统基于强大的RuoYi-Vue框架构建,采用最新的Spring Boot和Vue3技术,确保了系统的高性能和用户友好…...
Elasticsearch高级搜索技术-结构化数据搜索
目录 结构化数据的存储 示例映射 使用range查询 查询示例 运算符 更多示例 日期查询 示例 结构化数据搜索是Elasticsearch另一个强大的功能,允许用户对具有明确类型的数据(如数字、日期和布尔值)进行精确的过滤和查询。这种类型的搜索通常涉及…...
ffmpeg面向对象——类所属的方法探索
ffmpeg是面向对象的思想写的代码,自然符合oopc的实现套路。这个也是oopc的通用法则。 1.类所属方法oopc的实现形式 ffmpeg抽象出某一类,然后某一类的方法如何调用?你说这还不简单: 对象.对象方法() 或者 对象指针-&g…...
TensorRT-LLM七日谈 Day3
今天主要是结合理论进一步熟悉TensorRT-LLM的内容 从下面的分享可以看出,TensorRT-LLM是在TensorRT的基础上进行了进一步封装,提供拼batch,量化等推理加速实现方式。 下面的图片更好的展示了TensorRT-LLM的流程,包含权重转换&…...
如何使用Pandas库处理大型数据集?
如何使用Pandas库处理大型数据集? 处理大型数据集是数据分析中的一个挑战,尤其是在资源有限的情况下。Pandas是Python中非常流行的数据处理库,但它在处理非常大的数据集时可能会遇到内存限制的问题。因此,我们需要一些策略来提高Pandas处理大型数据集的效率。以下是使用Pa…...
XHR 创建对象
XHR 创建对象 XMLHttpRequest(XHR)是现代Web开发中不可或缺的技术之一。它允许Web开发者通过JavaScript发送网络请求,以在不重新加载整个页面的情况下更新网页的某部分。XHR为开发者提供了一种在客户端和服务器之间传输数据的有效方式,是AJAX(Asynchronous JavaScript an…...
# 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析
在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析 一、问题描述: 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 如下图: 二、报错分析&…...
C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类
首先,我们先写一个并不完美的类: #include<iostream> #include<cstring> using namespace std;class Mystring{private:char *p;int len;static int num;friend ostream& operator<<(ostream& os, const Mystring& c);pu…...
HsMod终极指南:如何通过55项功能全面优化炉石传说游戏体验
HsMod终极指南:如何通过55项功能全面优化炉石传说游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是基于BepInEx框架开发的炉石传说模改插件,专为提升…...
Java Agent全链路追踪:无侵入分布式系统监控实战
1. 项目概述:一个面向分布式系统的全链路数据采集探针最近在跟几个做微服务架构的朋友聊天,大家都在头疼同一个问题:线上系统出点性能瓶颈或者偶发性错误,排查起来简直像大海捞针。服务A调用服务B,B又调用了C和D&#…...
嵌入式音频处理与SD卡系统克隆实战指南
1. 项目概述与核心价值如果你正在捣鼓一块像Chumby Hacker Board这样的嵌入式开发板,或者任何带有音频输出和SD卡存储的Linux设备,那么你迟早会碰到两个绕不开的“硬骨头”:音频信号的处理和存储系统的克隆部署。前者决定了你的设备能不能“好…...
基于React与Zustand的现代后台管理系统架构设计与实现
1. 项目概述:一个开源后台管理系统的诞生与价值最近在GitHub上闲逛,又发现了一个挺有意思的项目——duanecilliers/openclaw-admin。这名字起得挺酷,“OpenClaw”,直译过来是“开放之爪”,听起来就带着一股子灵活、可抓…...
ClawPowers-Skills:开发者实战技能库与个人工具箱构建指南
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“ClawPowers-Skills”,作者是up2itnow0822。乍一看这个标题,你可能会有点摸不着头脑——“ClawPowers”是什么?“Skills”又具体指什么?这其实是一个典…...
Redis向量搜索实战:基于redis-vl-python构建高性能语义检索系统
1. 项目概述:当Redis遇上向量搜索如果你最近在关注数据库和AI应用开发,大概率会听到“向量数据库”这个词。传统的Redis,那个我们用来做缓存、消息队列、排行榜的“瑞士军刀”,现在也开始拥抱这个新潮流了。redis/redis-vl-python…...
移步皆海景处处可停留,读懂大连海岸的松弛质感
沿着大连的滨海路漫步,你会遇见这座城市最从容的一面。这条贯穿海滨风景线的道路,串联起星海广场、森林动物园、老虎滩海洋公园等多个开放型景观区域,核心特点在于它并不急于展示某个单一景点,而是将城市生活与自然海岸融为一体—…...
从Starpod项目解析个人AI工作流引擎:架构、实现与应用
1. 项目概述:从“星荚”到个人AI工作流引擎最近在AI工具圈里,一个名为sinaptik-ai/starpod的项目引起了我的注意。乍一看这个标题,可能会觉得有些抽象——“星荚”是什么?AI“豆荚”?但当你深入其GitHub仓库࿰…...
别再只会用Matplotlib画基础热力图了!这5个高级定制技巧让你的图表瞬间专业
解锁Matplotlib热力图的5个高阶美学密码:从基础图表到专业可视化 当你第一次用Matplotlib画出热力图时,那种成就感就像解开了数据分析的第一道密码。但随着项目复杂度的提升,那些默认参数生成的图表开始显得单薄——颜色映射不够精准、标注信…...
从田野笔记到理论建模,NotebookLM政治学辅助全流程拆解,含6类典型误用场景避坑指南
更多请点击: https://intelliparadigm.com 第一章:从田野笔记到理论建模:NotebookLM政治学辅助全流程概览 NotebookLM 作为 Google 推出的基于用户上传文档进行深度语义理解的 AI 助手,正逐步成为政治学研究者处理非结构化文本的…...
