1.首先导依赖(依赖包)
<!--springboot对redis依赖包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
jackjson用来json格式的转换(redis与java后端只接受json格式传输数据);当然你也可以用fasjson
2.编写配置文件,我用的是yml配置文件(你也可以使用properties文件)
注意:redis节点在sring节点下面
redis:
database: 0
#redis服务器地址
host: 192.168.227.128
#redis服务器连接端口
port: 6379
#redis服务器连接密码(默认为空)
password:
jedis:
pool:
max-active: 200
#连接池中最大空间连接
max-idle: 10
#连接池中最小空闲连接
min-idle: 0
#连接超时时间(毫秒)
timeout: 10000
3.编写Controller(写一个简单的存储redis,从redis获取数据)
@RequestMapping(value = "/getUserList")
public ModelAndView getUserList(){
//往缓存中存值
redisTemplate.opsForValue().set("user","李鹏飞");
Object username = redisTemplate.opsForValue().get("user");
System.out.println("缓存拿数据"+username);
return null;
}
简单的存取redis数据到此结束啦!!!
但是有些小伙伴会出现一些问题:存中文到redis,拿取出来是unicode格式的,解决办法如下:
自己写一个redisConfig类:
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
//使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
Jackson2JsonRedisSerializer<Object> redisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
redisSerializer.setObjectMapper(mapper);
template.setValueSerializer(redisSerializer);
//使用StringRedisSerializer来序列化和反序列化redis的key值
template.setKeySerializer(new StringRedisSerializer());
template.afterPropertiesSet();
return template;
}
}