文章目录
Redis使用
简介
Redis是一个高性能的缓存存储系统,以key——value的形式存储数据,目前支持5种基本类型,string,list,set,zset(sorted set,有序集合)和hash。在性能方面,Redis深受好评。并且,Redis还可以做持久化存储。
pom文件依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
properties文件配置
只简单配置了服务地址与端口
##redis服务器地址
spring.redis.host=localhost
## redis服务器连接端口
spring.redis.port=6379
## 密码
spring.redis.password=123456
RedisService
使用Redis,常用操作就是set和get,那么可以建立一个RedisService类来实现这两个操作,同时需要在类上添加@Service,表示这是一个受spring管理的java对象,代码如下
public class RedisService {
@Resource
private RedisTemplate<String, Object> redisTemplate;
public void set(String key, Object value, Long time, TimeUnit t){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
ValueOperations<String, Object> vo = redisTemplate.opsForValue();
vo.set(key, value, time, t);
}
public Object get(String key){
ValueOperations<String, Object> vo = redisTemplate.opsForValue();
return vo.get(key);
}
}
UserController
@RestController
public class UserController {
@Autowired
private RedisService redisService;
@GetMapping("/saveUser")
public String saveUser(Long id, String userName, String userPassword){
User user = new User(id, userName, userPassword);
//redisService.set(id.toString(), user,100L,TimeUnit.SECONDS);
return "success";
}
@GetMapping("/getUserById")
public Object getUserById(Long id){
return (Object) redisService.get(id.toString());
}
}
启动
然后启动,进行相应的操作,就会在redis中查询到相关的记录
图片
总结
@Service注解
如果一个类带了@Service注解,将自动注册到Spring容器
Serializable接口
实体类实现了Serializable接口,用来对实体类进行序列化,否则控制台会报错
编码问题
在代码中,有这么一段代码
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
前一句对key值进行序列化,后一句对实体类进行实例化编码,这样就解决了编码问题
TimeUnit
Redis既能用来做持久化存储,也能做缓存。当做缓存时,需要在set方法中设置存在时间Long time, TimeUnit t
.
TimeUnit
Redis既能用来做持久化存储,也能做缓存。当做缓存时,需要在set方法中设置存在时间Long time, TimeUnit t
.