您的位置:首页 > 数据库 > Redis

SpringBoot学习笔记之Redis集成

2017-09-20 08:55 726 查看
Springboot Redis集成

1)、Spring Boot Redis 依赖

<!-- Spring Boot Redis 依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

2)、application.properties增加redis配置

#redis配置

# REDIS (RedisProperties)

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=127.0.0.1

# Redis服务器连接端口

spring.redis.port=6379

# Redis服务器连接密码(默认为空)

spring.redis.password=

# 连接池最大连接数(使用负值表示没有限制)

spring.redis.pool.max-active =8

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.pool.max-wait=-1

# 连接池中的最大空闲连接

spring.redis.pool.max-idle=8

# 连接池中的最小空闲连接

spring.redis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=0

3)、Redis配置类

import java.lang.reflect.Method;

import org.springframework.cache.CacheManager;

import org.springframework.cache.annotation.CachingConfigurerSupport;

import org.springframework.cache.annotation.EnableCaching;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.cache.RedisCacheManager;

import org.springframework.data.redis.core.RedisTemplate;

/**

* @Description redis的缓存配置类,主要配置1、key的生成策略 2、缓存管理规则

* @ClassName RedisConfig

*/

@Configuration

@EnableCaching

public class RedisConfig extends CachingConfigurerSupport {

/*

* 这个是redis中key的生成规则,可以根据自己的业务来定

*/

@Bean

public KeyGenerator keyGenerator() {

return new KeyGenerator() {

public Object generate(Object target, Method method,

Object... params) {

String key = target.getClass().getName() + "$"

+ method.getName() + "$" + params;

return key;

}

};

}

@Bean

public CacheManager cacheManager(RedisTemplate redisTemplate) {

RedisCacheManager rcm = new RedisCacheManager(redisTemplate);

//设置缓存过期时间

//rcm.setDefaultExpiration(60);//秒

return rcm;

}

}

4)、开发接口及实现类

接口类:

public interface RedisService {

Object findByKey(String key);

Object cacheObject(String result);

}

实现类:

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.cache.interceptor.KeyGenerator;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.stereotype.Service;

@Service

public class RedisServiceImpl implements RedisService {

@Autowired

private RedisTemplate redisTemplate;

@Autowired

private KeyGenerator keyGenerator;

public Object findByKey(String key) {

return redisTemplate.opsForValue().get(key);

}

public Object cacheObject(String result) {

try {

Object keyObj = keyGenerator.generate(this, this.getClass()

.getMethod("cacheObject", new Class<?>[] { String.class }),

"xxx");

if (!redisTemplate.hasKey(keyObj)) {

redisTemplate.opsForValue().set("jack", result);

}

} catch (NoSuchMethodException e) {

e.printStackTrace();

} catch (SecurityException e) {

e.printStackTrace();

}

return null;

}

}

5)、测试代码SpringBootJUnitTest下的cacheRedis()和testRedis()

源码下载地址:http://download.csdn.net/download/liyuejin/9986140
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SpringBoot redis