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

redis(2)-java客户端使用(IDEA基于springboot)

一、准备工作

首先确保:

  1. Linux 服务器上已安装并启动 Redis 服务
  2. Redis 已配置允许远程连接(修改 redis.conf 文件)
  3. 开发环境(IDEA)已准备好

二、Spring Boot 项目配置 Redis

1. 添加依赖

pom.xml中添加 Redis 相关依赖:

<!-- Spring Data Redis -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency><!-- 连接池 -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>
</dependency>

2. 配置 Redis 连接信息

application.propertiesapplication.yml中配置:

注:host地址取决于虚拟机,密码取决于你的设置

spring:data:#在idea后面几个版本需要添加data,否则无法连接redis:host: 192.168.253.131  # 虚拟机的IP地址port: 6379password: 123456timeout: 5000lettuce:pool:max-active: 8max-idle: 8min-idle: 2max-wait: 2000ms

3、简单的测试类(String)

@SpringBootTest
class SpringRedisApplicationTests {@Autowiredprivate RedisTemplate redisTemplate;@Testvoid contextLoads() {redisTemplate.opsForValue().set("pet","dog");Object name=redisTemplate.opsForValue().get("pet");System.out.println(name);}}

这时运行会出现乱码问题,因此要实现序列化。

三、序列化与反序列化

1、工厂序列化方式

实现方式

JDK 序列化是RedisTemplate的默认方式,依赖 Java 自带的序列化机制。

具体代码:

@Bean
public RedisTemplate<String, 0bject> redisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException{
//创建Template
RedisTemplate<String,Object>redisTemplate = new RedisTemplate<>();
//设置连接工厂
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 设置序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
//key和hashKey采用string序列化
redisTemplate.setKeySerializer(RedisSerializer.string());
redisTemplate.setHashKeySerializer(RedisSerializer.string());
//value和hashValue采用JSON序列化
redisTemplate.setValueSerializer(isonRedisSerializer);
redisTemplate.setHashValueSerializer(isonRedisSerializer);
return redisTemplate;
}

2、自定序列化方式

实现方式

JSON 序列化通过GenericJackson2JsonRedisSerializerJackson2JsonRedisSerializer实现,将对象转为 JSON 字符串存储。需引入 Jackson 依赖(Spring Boot 默认已包含)。

具体代码:

http://www.dtcms.com/a/326125.html

相关文章:

  • USB 基本描述符
  • Go 多进程编程-管道
  • C++方向知识汇总(三)
  • 面试实战 问题二十三 如何判断索引是否生效,什么样的sql会导致索引失效
  • git:分支
  • 3Ds Max的魔改利器:RailClone - 程序化建模的革命者
  • MySQL 经典练习 50 题(完美解答版,提供解题思路)
  • Spring Framework源码解析——DisposableBean
  • Oracle数据库中的Library cache lock和pin介绍
  • Java多线程并发控制:使用ReentrantLock实现生产者-消费者模型
  • js异步操作 Promise :fetch API 带来的网络请求变革—仙盟创梦IDE
  • 机器翻译:Bahdanau注意力和Luong注意力详解
  • 【浮点数存储】double类型注意点
  • 理解LangChain — Part 3:链式工作流与输出解析器
  • Notepad--:国产跨平台文本编辑器,Notepad++ 的理想替代方案
  • 写一篇Ping32和IP-Guard的对比,重点突出Ping32
  • 循环控制:break和continue用法
  • 鸿蒙flutter项目接入极光推送
  • Java项目基本流程(三)
  • Orange的运维学习日记--38.MariaDB详解与服务部署
  • linux安装和使用git
  • Elasticsearch 官方 Node.js 从零到生产
  • docker部署elasticsearch-8.11.1
  • 网络的基本概念、通信原理以及网络安全问题
  • YOLOv6深度解析:实时目标检测的新突破
  • 时序数据库为什么选IoTDB?
  • 爬虫与数据分析结合案例
  • STM32 HAL驱动MPU6050传感器
  • p6spy和p6spy-spring-boot-starter的SpringBoot3集成配置
  • 高性能Web服务器