Redis
NoSql,非关系型数据库,支持多种数据类型的存储。
项目地址
https://github.com/Inverseli/SpringBoot-Learning/tree/master/learning3-2-4
note
- 储存对象需要进行序列化操作,可自定义序列化。
- 序列化(Object->byte)对象储存的一种方式
- redis默认端口6379,默认密码为空
- redis常用配置
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# 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=5000
RedisConfig
package com.inverseli.learning;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import com.inverseli.learning.domain.User;
/**
* @date:2018年9月26日 下午12:27:59
* @author liyuhao
* @version 1.0
* @since JDK 1.8
* @description:
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,User> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String,User> template = new RedisTemplate<String,User>();
template.setConnectionFactory(redisConnectionFactory);
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
template.setKeySerializer(stringSerializer);
template.setValueSerializer(new RedisObjectSerializer());
return template;
}
}
踩过的坑
- 注意依赖的starter版本
- 对象要实现 Serializable 接口
- 项目开始之前一定要弄清楚版本问题(重要),要不然越往后越麻烦