RedisTemplate中定义了对5种数据结构操作
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
Redis 更新缓存问题解决
- 方案1
- [主动]后台点击更新缓存按钮,从DB查找最新数据集合,删除原缓存数据,存储新数据到缓存;
- 问题:更新过程中删除掉缓存后刚好有业务在查询,那么这个时候返回的数据会是空,会影响用户体验
- 方案2
- [被动]前台获取数据时发现没有缓存数据就会去数据库同步数据到缓存
- 问题:当并发请求获取缓存数据不存在的时候,就会产生并发的查询数据的操作。
- 方案3
- [主动]后台点击更新缓存按钮,从DB查找最新数据集合,这里不删除缓存,通过遍历数据覆盖和删除掉无效的数据
- 问题:逻辑相对麻烦,而且更新机制无法通用;