`

springboot整合redis

 
阅读更多

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.算是比较全面的一种整合方式了.

    微服务SpringBoot整合Redis基于Redis的Stream消息队列实现异步秒杀下单

    【微服务SpringBoot整合Redis基于Redis的Stream消息队列实现异步秒杀下单】这篇文章主要讲解了如何在微服务架构中使用SpringBoot整合Redis来构建一个基于Redis Stream的消息队列,以此来实现实时、高效的异步秒杀...

    springboot整合redis集群(三种方式)源码

    springboot整合redis集群(三种方式)源码

    SpringBoot 整合 Redis、mybatis 完整项目源码下载

    **SpringBoot整合Redis** 1. **配置Redis**: 在SpringBoot项目中,可以通过`application.properties`或`application.yml`文件配置Redis连接信息,包括主机地址、端口、密码等。 2. **添加依赖**: 在`pom.xml`文件...

    springboot整合redis动态切换每个数据库

    springboot整合redis动态切换每个数据库,

    springboot整合redis集群零配置

    首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-boot-starter-data-redis`依赖来启用Redis支持。但是,要配置Redis集群,通常需要设置多个节点地址、密码、...

    SpringBoot整合Redis大全

    **SpringBoot整合Redis详解** SpringBoot是一款由Pivotal团队提供的全新框架,它极大地简化了Spring应用的初始搭建以及开发过程。而Redis是一款高性能的键值对存储系统,常用于缓存、消息队列等场景。SpringBoot与...

    SpringBoot整合Redis

    **SpringBoot整合Redis** 在现代Web开发中,缓存机制是提高系统性能的关键技术之一,而Redis作为一款高性能的键值存储系统,被广泛应用在数据缓存领域。SpringBoot简化了与各种技术的集成,包括Redis。下面我们将...

    Springboot整合Redis的组件源代码

    《SpringBoot整合Redis实战解析》 在现代的Java开发中,SpringBoot以其便捷的配置、快速的启动和强大的生态系统成为了主流框架。而Redis作为高性能的键值存储系统,常用于缓存、消息队列等场景,是提升系统性能的...

    springboot与redis整合

    3. **SpringBoot整合Redis** - **添加依赖**:在SpringBoot项目中,首先需要在`pom.xml`或`build.gradle`文件中引入Redis的依赖,通常使用`spring-boot-starter-data-redis`起步依赖。 - **配置Redis**:在`...

    idea下springboot整合redis例子

    在本文中,我们将深入探讨如何在IntelliJ IDEA(Idea)环境下,使用Spring Boot整合Redis,以便在Java应用中实现高效的数据缓存。Spring Boot以其简洁的配置和快速的开发体验,已经成为Java开发者的首选框架之一。而...

    SpringBoot整合redis及工具类

    总结来说,SpringBoot整合Redis提供了高效、便捷的方式来管理和操作缓存数据。通过创建工具类,我们可以封装常用操作,提高代码的可读性和复用性。同时,配合Swagger-ui,开发者可以创建API文档,便于团队协作和API...

    springboot整合redis.zip

    springboot整合redis

    springboot整合redis、mybatis以及redis和mybatis的联合使用

    springboot集成redis、mybatis 1、集成redis 2、集成mybatis 3、自定义redis KEY生成器/CacheManager来管理redis缓存 4、分布式redis-session共享 5、springboot实现初始化加载配置(实现缓存预热)的两种方式 6、二...

    springboot整合redis(附带redis的windows版)

    springboot整合redis(附带redis的windows版).将redis放在了项目的目录中

    springboot整合redis(单机 集群).pdf

    《SpringBoot整合Redis:单机与集群》 在现代互联网应用中,Redis作为一个高性能的键值数据存储系统,常被用于缓存、消息队列等多种场景。SpringBoot作为一款简化Spring应用初始搭建以及开发过程的框架,其强大的...

    springboot整合redis+shiro

    标题 "springboot整合redis+shiro" 描述的是一个基于Spring Boot的应用程序,该应用程序集成了Redis和Apache Shiro框架,以实现权限管理和用户认证。这个项目还包含了SQL文件,可以方便地部署和运行,但前提是你需要...

Global site tag (gtag.js) - Google Analytics