RedisTemplate中定义了对5种数据结构操作

redisTemplate.opsForValue();//操作字符串
 redisTemplate.opsForHash();//操作hash
 redisTemplate.opsForList();//操作list
 redisTemplate.opsForSet();//操作set
 redisTemplate.opsForZSet();//操作有序set


 

Redis 更新缓存问题解决

  • 方案1
  • [主动]后台点击更新缓存按钮,从DB查找最新数据集合,删除原缓存数据,存储新数据到缓存;
  • 问题:更新过程中删除掉缓存后刚好有业务在查询,那么这个时候返回的数据会是空,会影响用户体验
  • 方案2
  • [被动]前台获取数据时发现没有缓存数据就会去数据库同步数据到缓存
  • 问题:当并发请求获取缓存数据不存在的时候,就会产生并发的查询数据的操作。
  • 方案3
  • [主动]后台点击更新缓存按钮,从DB查找最新数据集合,这里不删除缓存,通过遍历数据覆盖和删除掉无效的数据
  • 问题:逻辑相对麻烦,而且更新机制无法通用;