一、安装
1.1、安装
二、Redis的基础数据类型
2.1、 字符串
2.2、Redis 哈希(Hash)
2.3、列表(List)
2.4、集合(Set)
2.5、
zset(sorted set)
三、Redis的高级特性
3.1、键的生存时间(expire)
3.2、redis的事务(transaction)
3.3、排序(sort)
3.4、发布订阅
3.5、管道技术(pipeline)
3.6、持久化
3.7、Redis主从复制与集群
3.8、缓存穿透、缓存雪崩、缓存击穿
1)缓存穿透是指查询一个一定不存在的数据。由于缓存命不中时会去查询数据库,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决方案:
- ① 是将空对象也缓存起来,并给它设置一个很短的过期时间,最长不超过5分钟
- ② 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力
2)缓存雪崩: 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,就会造成缓存雪崩。 解决方案:
- 尽量让失效的时间点不分布在同一个时间点
3)缓存击穿,是指一个key非常热点,在不停的扛着大并发,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。 解决方案:
- 可以设置key永不过期
主从复制中反客为主的自动版,如果主机Down掉,哨兵会从从机中选择一台作为主机,并将它设置为其他从机的主机,而且如果原来的主机再次启动的话也会成为从机。
四、java使用redis 4.1、连接