Redis 是完全开源免费的一个高性能的key-value数据库。其读写速度较快,支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,加上他的key值过期等特性,使redis在缓存上有不俗的表现。
在查询大量数据的时候,我们可以通过查询Redis中的数据来代替数据库查询,降低数据库服务器负载,提高响应速度。
Redis缓存主要可以用在什么地方呢?
1 页面缓存
Redis可将Web页面的内容片段,包括HTML,CSS和图片等静态数据,缓存到Redis实例,提高网站的访问性能。
比如在电商类应用中,热销商品展示、秒杀推荐等数据面临高并发读的压力,分布式缓存Redis的高并发及灵活扩展,可轻松支持 此类应用。
2 状态缓存
Redis可以将seesion缓存下来,实现状态共享。
3.应用对象缓存
Redis可作为服务层的二级缓存对外提供服务,减轻数据库的负载压力,加速应用访问。https://www.cnblogs.com/happyflyingpig/p/7818280.html
那么Redis是如何实现缓存的呢?
Redis支持五种数据类型:String(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)
对应不同的类型,redis都要对应的操作的方法
例如字符串 ValueOperations<String,Object> vo = redisTemplate.opsForValue(); 然后可以调用ValueOperations操作字符串的方法进行缓存的一些操作 设置键值啊什么的
RedisTemplate的expire方法可以设置key的过期时间 也就是缓存的有效时间。
Redis缓存穿透:
查询数据库一定不存在的数据 由于不存在就不会走缓存 容易对数据库造成压力。
Redis缓存雪崩
就是大量并发访问,设置缓存时,由于缓存key的失效时间差不多,导致同一时间大量key缓存失效,直接访问数据库,对数据库造成较大压力
Redis缓存击穿
就是某个KEY非常热门,大并发访问时突然失效,导致击穿缓存,大量请求访问数据库。