springboot配置redis

server/2025/2/8 8:42:28/

文章目录

  • 前置
  • 依赖配置
  • yml 配置
  • 自定义配置(非必要)
  • 正常使用

前置

你使用的是 springboot 项目,使用 yml 来进行配置,properties 同理

依赖配置

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

这个依赖会自动引入:

spring-data-redis(Spring Data Redis 核心库)

lettuce-core(默认的 Redis 客户端,基于 Netty 的高性能客户端)

yml 配置

有 3 大 redis 客户端:Jedis、Redisson、Lettuce,其中在 spring boot2 之后,redis连接默认就采用了 lettuce

spring:redis:host: localhost  # Redis 服务器地址port: 6379       # Redis 服务器端口,默认是 6379password:        # Redis 密码(如果没有密码,可以省略)database: 0      # 使用的数据库索引,默认是 0timeout: 2000    # 连接超时时间(毫秒)lettuce:pool:max-active: 8      # 连接池最大连接数max-idle: 8        # 连接池最大空闲连接数min-idle: 0        # 连接池最小空闲连接数max-wait: -1ms     # 连接池最大阻塞等待时间(-1 表示无限制)

自定义配置(非必要)

配置完成 yml 后,你无需再配置 RedisTemplate 和 StringRedisTemplate 的 Configuration 代码了,因为 Spring Boot 会自动配置 RedisTemplate 和 StringRedisTemplate,你可以直接注入它们来操作 Redis

但是如果你非要自己在做额外的配置,那么你可以写如下这样的代码:

@Configuration  
public class RedisConfig {  @Bean  public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {  RedisTemplate<String, Object> template = new RedisTemplate<>();  template.setConnectionFactory(redisConnectionFactory);  // 使用StringRedisSerializer来序列化和反序列化redis的key值  StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();  template.setKeySerializer(stringRedisSerializer);  template.setHashKeySerializer(stringRedisSerializer);  // 使用GenericJackson2JsonRedisSerializer来序列化和反序列化redis的value值  GenericJackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer<>();  ObjectMapper objectMapper = new ObjectMapper();  objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);  objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);  jackson2JsonRedisSerializer.setObjectMapper(objectMapper);  template.setValueSerializer(jackson2JsonRedisSerializer);  template.setHashValueSerializer(jackson2JsonRedisSerializer);  template.afterPropertiesSet();  return template;  }  
}

正常使用

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;@Service
public class RedisService {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Autowiredprivate StringRedisTemplate stringRedisTemplate;// 存储数据public void setValue(String key, String value) {stringRedisTemplate.opsForValue().set(key, value);}// 获取数据public String getValue(String key) {return stringRedisTemplate.opsForValue().get(key);}// 存储对象public void setObject(String key, Object value) {redisTemplate.opsForValue().set(key, value);}// 获取对象public Object getObject(String key) {return redisTemplate.opsForValue().get(key);}
}

http://www.ppmy.cn/server/165902.html

相关文章

苹果再度砍掉AR眼镜项目?AR真的是伪风口吗?

曾经&#xff0c;AR游戏一度异常火热&#xff0c;宝可梦go让多少人不惜翻墙都要去玩&#xff0c;但是也没过去几年&#xff0c;苹果被曝出再度砍掉了AR眼镜项目&#xff0c;面对着市场的变化&#xff0c;让人不禁想问AR真的是伪风口吗&#xff1f; 一、苹果再度砍掉AR眼镜项目&…

python编程-类结构,lambda语法,原始字符串

一个类的基本结构包括以下部分&#xff1a; 类名&#xff1a;用来描述具有相同属性和方法的对象的集合。 属性&#xff1a;类变量或实例变量&#xff0c;用于处理类及其实例对象的相关数据。 方法&#xff1a;在类中定义的函数&#xff0c;用于执行特定操作。 构造器&#xff…

【JS】element-ui table展示勾选状态

element-ui table 我将勾选的值存在multipleSelection中&#xff0c;在表格更新后&#xff0c;再遍历&#xff0c;来展示勾选状态。这样可行吗&#xff1f; 在使用 Element UI 的 el-table 组件时&#xff0c;将勾选的值存储在 multipleSelection 中&#xff0c;然后在表格更新…

【c++】构造函数

【c】构造函数 1.函数名称与类同名&#xff1a;构造函数名称必须与类名严格一致。 2.无返回值类型&#xff1a;无需声明返回类型&#xff08;包括 void&#xff09; 3.构造函数一般为公有来对数据成员进行初始化(对象一般不能调用构造函数 但是可以使用定位new来调用构造函数–…

Maven 依赖管理全面解析

目录 1. Maven 简介 2. 依赖的基本概念 依赖坐标 依赖范围 3. Maven 仓库 本地仓库 远程仓库 4. 依赖传递 5. 依赖冲突 6. 在 pom.xml 文件中管理依赖 基本依赖配置 依赖范围配置 依赖排除配置 依赖管理配置&#xff08;&#xff09; 1. Maven 简介 Maven 是一个…

06vue3实战-----项目开发准备

06vue3实战-----项目开发准备 1.CSS样式的重置1.1先引入第三方库normalize.css1.2自己写一些默认样式 2.路由配置2.1安装路由:2.2挂载路由:2.3配置路由 3.状态管理配置3.1安装pinia3.2挂载pinia3.3创建一个store文件3.4应用store 4.网络请求封装axios4.1再封装axios4.2使用封装…

【分布式一致性全知全会】(10)顺序一致性

引子 顺序一致性是并发系统的一个强安全属性。通俗地说&#xff0c;顺序一致性意味着操作似乎按某种全序进行&#xff0c;并且该顺序与每个单独进程上的操作顺序一致。 顺序一致性无法完全或持久地实现&#xff1b;如果发生网络分区&#xff0c;部分或全部节点将无法继续运行…

基于STM32设计的仓库环境监测与预警系统

目录 项目开发背景设计实现的功能项目硬件模块组成设计思路系统功能总结使用的模块的技术详情介绍总结 1. 项目开发背景 随着工业化和现代化的进程&#xff0c;尤其是在制造业、食品业、医药业等行业&#xff0c;仓库环境的监控和管理成为了至关重要的一环。尤其是在存储易腐…