什么是Redis
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Redis官网:https://redis.io/
spring boot 使用Redis
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
修改application.yaml
在配置文件中,增加redis配置信息
增加Redis配置类
/**
* Redis配置
* @author laughing
* @date 2020/10/2
* @site https://www.xiangcaowuyu.net
*/
@Configuration
public class RedisConfig {
/**
* RedisTemplate配置,放置存储数据乱码
* @param redisConnectionFactory
* @return
*/
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// key采用String的序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
// hash的key也采用String的序列化方式
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
// value序列化方式采用fastjson
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
// hash的value序列化方式采用jackson
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
编写Redis工具类
/**
* Redis工具类
* @author laughing
* @date 2020/10/2
* @site https://www.xiangcaowuyu.net
*/
@Component
public class RedisUtils {
@Resource
RedisTemplate<String, Object> redisTemplate;
/**
* 判断是否存在
*
* @return
*/
public boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
/**
* 获取值
* @param key
* @return
*/
public Object getValue(String key){
return redisTemplate.opsForValue().get(key);
}
/**
* 设置值
*
* @param key
* @param value
*/
public void setValue(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 获取过期时间
*
* @param key
* @return
*/
public Long getExpire(String key) {
return redisTemplate.getExpire(key);
}
/**
* 获取过期时间
*
* @param key
* @param timeUnit
* @return
*/
public Long getExpire(String key, TimeUnit timeUnit) {
return redisTemplate.getExpire(key, timeUnit);
}
/**
* 设置过期时间
*
* @param key
* @param timeOut
* @return
*/
public Boolean setExpire(String key, Duration timeOut) {
return redisTemplate.expire(key, timeOut);
}
/**
* 删除
*
* @param key
* @return
*/
public Boolean delete(String key) {
return redisTemplate.delete(key);
}
/**
* 删除
* @param keys
* @return
*/
public Long deleteAll(List<String> keys){
return redisTemplate.delete(keys);
}
}
使用
这里进行简单的测试。
@SpringBootTest
class RedisApplicationTests {
@Resource
RedisUtils redisUtils;
@Test
void contextLoads() {
}
@Test
void setValue(){
String key = "name";
String value = "香草物语";
redisUtils.setValue(key,value);
}
}
这里只演示一个设置值,通过Another Redis Desktop查看数据库
呵呵
感谢分享