微服务-使用Redis实现分布式缓存
Posted 开拖拉机的蜡笔小新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务-使用Redis实现分布式缓存相关的知识,希望对你有一定的参考价值。
在单体中对于key信息和用户信息是放在内存中放的,通过session进行管理。
微服务是要放在分布式缓存中,以实现服务的无状态化。
@Autowired private StringRedisTemplate redisTemplate; @Value("${file.prefix}") private String imgPrefix; /** * 1.首先通过缓存获取 * 2.不存在将从通过数据库获取用户对象 * 3.将用户对象写入缓存,设置缓存时间5分钟 * 4.返回对象 * @param id * @return */ public User getUserById(Long id) { String key = "user:"+id; String json = redisTemplate.opsForValue().get(key); User user = null; //如果为空则从数据库中查找 if (Strings.isNullOrEmpty(json)) { user = userMapper.selectById(id); user.setAvatar(imgPrefix + user.getAvatar()); //反序列化成json存入缓存 String string = JSON.toJSONString(user); redisTemplate.opsForValue().set(key, string); redisTemplate.expire(key, 5, TimeUnit.MINUTES); }else { //不为空则将缓存中的json对象反序列化成user对象 user = JSON.parseObject(json,User.class); } return user; }
以上是关于微服务-使用Redis实现分布式缓存的主要内容,如果未能解决你的问题,请参考以下文章
6.《持续演进的Cloud Native 云原生架构下微服务最佳实践》读书笔记-第三章基于Codis实现Redis分布式缓存集群
微服务框架 SpringCloud微服务架构 多级缓存 48 多级缓存 48.7 Redis 缓存预热