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

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

http://www.lryc.cn/news/459921.html

相关文章:

  • Spring Boot、Spring MVC和Spring有什么区别
  • Flip动画
  • Java通过RAG构建专属知识问答机器人_超详细
  • 2.1 使用点对点信道的数据链路层
  • 台式机来电自启动设置
  • 【最新华为OD机试E卷-支持在线评测】考勤信息(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • netdata保姆级面板介绍
  • 苹果最新论文:LLM只是复杂的模式匹配 而不是真正的逻辑推理
  • Python知识点:基于Python工具,如何使用Scikit-Image进行图像处理与分析
  • MongoDB初学者入门教学:与MySQL的对比理解
  • Oracle AI Vector Search
  • 基于SpringBoot的健身会员管理系统实战分享
  • Elasticsearch高级搜索技术-结构化数据搜索
  • ffmpeg面向对象——类所属的方法探索
  • TensorRT-LLM七日谈 Day3
  • 如何使用Pandas库处理大型数据集?
  • XHR 创建对象
  • # 在执行 rpm 卸载软件使用 nodeps 参数时,报错 error: package nodeps is not installed 分析
  • C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类
  • 通过观测云 DataKit Extension 接入 AWS Lambda 最佳实践
  • MySQL-三范式 视图
  • 多线程(三):线程等待获取线程引用线程休眠线程状态
  • Hi3244 应用指导
  • 【LeetCode热题100】哈希
  • Java的四种循环语句
  • Qt杂记目录
  • 项目开发--基于docker实现模型容器化服务
  • C语言 | Leetcode C语言题解之第477题汉明距离总和
  • Bug剖析
  • HI3516DV500 相机部分架构初探