【Redis】在Java中操作Redis

本文介绍了如何通过Jedis和SpringDataRedis操作Redis,包括Jedis的基本使用、连接池配置,以及SpringDataRedis的集成步骤。针对SpringDataRedis的序列化问题,提出了两种解决方案,分别是自动JSON序列化和手动序列化,分析了各自的优缺点。在实际应用中,可根据需求选择合适的序列化策略。
摘要由CSDN通过智能技术生成

一、通过Jedis 操作Redis

  1. 引入Jedis 依赖 : 在这里插入图片描述
  2. 创建Jedis 连接 → 操作Redis → 关闭Jedis 连接
    在这里插入图片描述
    注意 : 如果连接不上,可能是redis配置文件的问题,需要到redis主机上的redis.conf中进行如下修改 :
    ① 把bind=127.0.0.1注释掉。在这里插入图片描述
    ② 将protected-mode设置为no。在这里插入图片描述
    通常不这样直接使用Jedis,而是通过Jedis连接池来创建Jedis : 创建连接池类 → 通过连接池类创建Jedis
    连接池类 :
    在这里插入图片描述
    获取Jedis : 在这里插入图片描述
    获取到Jedis之后的使用就没什么特别的了。

二、通过SpringDataRedis 操作Redis
SpringDataRedis 是Spring Boot 集成的Redis服务,使用步骤 : 引入Redis 和common-pool 依赖 → 在application.properties中配置Redis 相关信息 → 获取RedisTemplate 对象,并通过RedisTemplate 对象操作Redis 数据库。
① 引入Redis 和common-pool 依赖 :
在这里插入图片描述
② 在application.properties中配置Redis 相关信息 :
在这里插入图片描述
注意 : SpringDataRedis 默认使用 lettuce 而不是Jedis。
③ 获取RedisTemplate 对象,并通过RedisTemplate 对象操作Redis 数据库 :
在这里插入图片描述
SpringDataRedis存在的问题 :
Redis会自动对接收到的数据进行序列化,因此当写入Redis 时,实际存在Redis 数据库中的内容跟我们写入的不一样 :
在这里插入图片描述
参考资料 : https://www.bilibili.com/video/BV1cr4y1671t?p=22
解决方法 : 自定义RedisTemplate 的序列化方式 :
序列化方案一 :
在这里插入图片描述
在这里插入图片描述
这种方案的优点 : 能自动进行序列化和反序列化,也就是当我们存入一个对象时,会自动帮我们序列化成JSON 数据存入Redis;同样的,当从Redis 去除对应的JSON数据时,也会自动反序列化成对象。
缺点 : 存入Redis 时需要多保存属性 (用于保存JSON数据与对象的映射),带来额外开销。

方案二 :
在这里插入图片描述
优点 : 不增加额外开销。
缺点 : 需要手动序列化和反序列化。

----- end ------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值