Redis在springboot中的使用

依赖如下:
< dependency >
< groupId > org.springframework.boot </ groupId >
< artifactId > spring-boot-starter-data-redis </ artifactId >
</ dependency >

配置文件如下:
spring:
redis:
open: true # 是否开启 redis 缓存 true 开启 false 关闭
database: 0
host: 47.104.208.124
port: 6378
password: lf.1228 # 密码(默认为空)
timeout: 6000 # 连接超时时长(毫秒)
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接

RedisConfig类:
@Configuration
public class RedisConfig {
@Autowired
private RedisConnectionFactory factory ;
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer( new StringRedisSerializer());
redisTemplate.setHashKeySerializer( new StringRedisSerializer());
redisTemplate.setHashValueSerializer( new StringRedisSerializer());
redisTemplate.setValueSerializer( new StringRedisSerializer());
redisTemplate.setConnectionFactory( factory );
return redisTemplate;
}
@Bean
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForHash();
}
@Bean
public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForList();
}
@Bean
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForSet();
}
@Bean
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForZSet();
}
}

RedisUtils如下:
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, Object> redisTemplate ;
@Autowired
private ValueOperations<String, String> valueOperations ;
@Autowired
private HashOperations<String, String, Object> hashOperations ;
@Autowired
private ListOperations<String, Object> listOperations ;
@Autowired
private SetOperations<String, Object> setOperations ;
@Autowired
private ZSetOperations<String, Object> zSetOperations ;
/** 默认过期时长,单位:秒 */
public final static long DEFAULT_EXPIRE = 60 * 60 * 24 ;
/** 不设置过期时长 */
public final static long NOT_EXPIRE = - 1 ;
private final static Gson gson = new Gson();

public void set(String key, Object value, long expire){
valueOperations .set(key, toJson(value));
if (expire != NOT_EXPIRE ){
redisTemplate .expire(key, expire, TimeUnit. SECONDS );
}
}

public void set(String key, Object value){
set(key, value, DEFAULT_EXPIRE );
}

public < T > T get(String key, Class< T > clazz, long expire) {
String value = valueOperations .get(key);
if (expire != NOT_EXPIRE ){
redisTemplate .expire(key, expire, TimeUnit. SECONDS );
}
return value == null ? null : fromJson(value, clazz);
}

public < T > T get(String key, Class< T > clazz) {
return get(key, clazz, NOT_EXPIRE );
}

public String get(String key, long expire) {
String value = valueOperations .get(key);
if (expire != NOT_EXPIRE ){
redisTemplate .expire(key, expire, TimeUnit. SECONDS );
}
return value;
}

public String get(String key) {
return get(key, NOT_EXPIRE );
}

public void delete(String key) {
redisTemplate .delete(key);
}

/**
* Object 转成 JSON 数据
*/
private String toJson(Object object){
if (object instanceof Integer || object instanceof Long || object instanceof Float ||
object instanceof Double || object instanceof Boolean || object instanceof String){
return String. valueOf (object);
}
return gson .toJson(object);
}

/**
* JSON 数据,转成 Object
*/
private < T > T fromJson(String json, Class< T > clazz){
return gson .fromJson(json, clazz);
}
}

springboot如何封装redis:
RedisTemplate
所在包: org.springframework.data.redis.core
作用:redis模板,redis事务,序列化支持,操作redis方法

JedisConnectionFactory
所在包:org.springframework.data.redis.connection.jedis
作用:redis连接工厂类,创建redis连接池等

RedisAutoConfiguration
所在包:org.springframework.boot.autoconfigure.data.redis
作用:将redis配置文件相关信息注入工厂类

RedisProperties
所在包:org.springframework.boot.autoconfigure.data.redis
作用:redis连接基础类通过@ConfigurationProperties注解将配置信息注入属性


相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页