redis的数据库在java里面提供的官网工具包为jedis,在springboot中依然使用此包。
在pom文件中加入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
在application.yml文件中编写以下代码
spring: redis: host: 192.168.68.166 port: 6379 password: helloworld timeout: 1000 database: 0 pool: max-active: 10 max-idle: 8 min-idle: 2 max-wait: 100
然后就可以使用RedisTemplate了,如果application中默认不支持该缓存数据库,则可以使用@value+yml文件,使用java配置类生成客户端。
@SpringBootTest(classes = StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestRedis { @Resource private RedisTemplate<String, String> redisTemplate; @Test public void testSet() { this.redisTemplate.opsForValue().set("hello", "world"); System.out.println(this.redisTemplate.opsForValue().get("hello")); } }
如果配置序列话的话,可以创建特定的bean
@Bean public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory cf) { RedisTemplate<String, Object> redis = new RedisTemplate<String, Object>(); redis.setConnectionFactory(cf); redis.setKeySerializer(new StringRedisSerializer()); redis.setValueSerializer(new Jackson2JsonRedisSerializer(Object.class)); return redis; }
如果需要链接多个redis数据库,则使用@value
spring: redis: host: 192.168.68.166 port: 6379 password: mldnjava timeout: 1000 database: 0 pool: max-active: 10 max-idle: 8 min-idle: 2 max-wait: 100 redis-two: host: 192.168.68.166 port: 6379 password: mldnjava timeout: 1000 database: 0 pool: max-active: 10 max-idle: 8 min-idle: 2 max-wait: 100
@Configuration public class RedisTwoConfig { public RedisConnectionFactory getRedisConnectionFactory(String hostName, String password, int port, int maxActive, int maxIdle, int minIdle, long maxWait, int database) { // 是负责建立Factory的连接工厂类 JedisConnectionFactory jedisFactory = new JedisConnectionFactory(); jedisFactory.setHostName(hostName); jedisFactory.setPort(port); jedisFactory.setPassword(password); jedisFactory.setDatabase(database); JedisPoolConfig poolConfig = new JedisPoolConfig(); // 进行连接池配置 poolConfig.setMaxTotal(maxActive); poolConfig.setMaxIdle(maxIdle); poolConfig.setMinIdle(minIdle); poolConfig.setMaxWaitMillis(maxWait); jedisFactory.setPoolConfig(poolConfig); jedisFactory.afterPropertiesSet(); // 初始化连接池配置 return jedisFactory; } @Bean("redisTwo") public RedisTemplate<String, Object> getRedisTemplate( @Value("${spring.redis-two.host}") String hostName, @Value("${spring.redis-two.password}") String password, @Value("${spring.redis-two.port}") int port, @Value("${spring.redis-two.database}") int database, @Value("${spring.redis-two.pool.max-active}") int maxActive, @Value("${spring.redis-two.pool.max-idle}") int maxIdle, @Value("${spring.redis-two.pool.min-idle}") int minIdle, @Value("${spring.redis-two.pool.max-wait}") long maxWait) { RedisConnectionFactory factory = this.getRedisConnectionFactory( hostName, password, port, maxActive, maxIdle, minIdle, maxWait, database); // 建立Redis的连接 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>(); redisTemplate.setConnectionFactory(factory); redisTemplate.setKeySerializer(new StringRedisSerializer()); // key的序列化类型 redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Object.class)); // value的序列化类型
return redisTemplate; } }
或者这样配置
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import redis.clients.jedis.JedisPoolConfig; @Configuration public class RedisTwoConfig { @Value("${spring.redis-two.host}") private String hostName; @Value("${spring.redis-two.password}") private String password; @Value("${spring.redis-two.port}") private int port; @Value("${spring.redis-two.database}") private int database; @Value("${spring.redis-two.pool.max-active}") private int maxActive; @Value("${spring.redis-two.pool.max-idle}") private int maxIdle; @Value("${spring.redis-two.pool.min-idle}") private int minIdle; @Value("${spring.redis-two.pool.max-wait}") private long maxWait; public RedisConnectionFactory getRedisConnectionFactory() { // 是负责建立Factory的连接工厂类 JedisConnectionFactory jedisFactory = new JedisConnectionFactory(); jedisFactory.setHostName(hostName); jedisFactory.setPort(port); jedisFactory.setPassword(password); jedisFactory.setDatabase(database); JedisPoolConfig poolConfig = new JedisPoolConfig(); // 进行连接池配置 poolConfig.setMaxTotal(maxActive); poolConfig.setMaxIdle(maxIdle); poolConfig.setMinIdle(minIdle); poolConfig.setMaxWaitMillis(maxWait); jedisFactory.setPoolConfig(poolConfig); jedisFactory.afterPropertiesSet(); // 初始化连接池配置 return jedisFactory; } @Bean("redisTwo") public RedisTemplate<String, Object> getRedisTemplate() { RedisConnectionFactory factory = this.getRedisConnectionFactory(); // 建立Redis的连接 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>(); redisTemplate.setConnectionFactory(factory); redisTemplate.setKeySerializer(new StringRedisSerializer()); // key的序列化类型 redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer(Object.class)); // value的序列化类型 return redisTemplate; } }
相关推荐
springboot整合redis.算是比较全面的一种整合方式了. springboot整合redis.算是比较全面的一种整合方式了.
【微服务SpringBoot整合Redis基于Redis的Stream消息队列实现异步秒杀下单】这篇文章主要讲解了如何在微服务架构中使用SpringBoot整合Redis来构建一个基于Redis Stream的消息队列,以此来实现实时、高效的异步秒杀...
springboot整合redis集群(三种方式)源码
**SpringBoot整合Redis** 1. **配置Redis**: 在SpringBoot项目中,可以通过`application.properties`或`application.yml`文件配置Redis连接信息,包括主机地址、端口、密码等。 2. **添加依赖**: 在`pom.xml`文件...
springboot整合redis动态切换每个数据库,
首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-boot-starter-data-redis`依赖来启用Redis支持。但是,要配置Redis集群,通常需要设置多个节点地址、密码、...
**SpringBoot整合Redis详解** SpringBoot是一款由Pivotal团队提供的全新框架,它极大地简化了Spring应用的初始搭建以及开发过程。而Redis是一款高性能的键值对存储系统,常用于缓存、消息队列等场景。SpringBoot与...
**SpringBoot整合Redis** 在现代Web开发中,缓存机制是提高系统性能的关键技术之一,而Redis作为一款高性能的键值存储系统,被广泛应用在数据缓存领域。SpringBoot简化了与各种技术的集成,包括Redis。下面我们将...
《SpringBoot整合Redis实战解析》 在现代的Java开发中,SpringBoot以其便捷的配置、快速的启动和强大的生态系统成为了主流框架。而Redis作为高性能的键值存储系统,常用于缓存、消息队列等场景,是提升系统性能的...
3. **SpringBoot整合Redis** - **添加依赖**:在SpringBoot项目中,首先需要在`pom.xml`或`build.gradle`文件中引入Redis的依赖,通常使用`spring-boot-starter-data-redis`起步依赖。 - **配置Redis**:在`...
在本文中,我们将深入探讨如何在IntelliJ IDEA(Idea)环境下,使用Spring Boot整合Redis,以便在Java应用中实现高效的数据缓存。Spring Boot以其简洁的配置和快速的开发体验,已经成为Java开发者的首选框架之一。而...
总结来说,SpringBoot整合Redis提供了高效、便捷的方式来管理和操作缓存数据。通过创建工具类,我们可以封装常用操作,提高代码的可读性和复用性。同时,配合Swagger-ui,开发者可以创建API文档,便于团队协作和API...
springboot整合redis
springboot集成redis、mybatis 1、集成redis 2、集成mybatis 3、自定义redis KEY生成器/CacheManager来管理redis缓存 4、分布式redis-session共享 5、springboot实现初始化加载配置(实现缓存预热)的两种方式 6、二...
springboot整合redis(附带redis的windows版).将redis放在了项目的目录中
《SpringBoot整合Redis:单机与集群》 在现代互联网应用中,Redis作为一个高性能的键值数据存储系统,常被用于缓存、消息队列等多种场景。SpringBoot作为一款简化Spring应用初始搭建以及开发过程的框架,其强大的...
标题 "springboot整合redis+shiro" 描述的是一个基于Spring Boot的应用程序,该应用程序集成了Redis和Apache Shiro框架,以实现权限管理和用户认证。这个项目还包含了SQL文件,可以方便地部署和运行,但前提是你需要...