1、Redis五种数据类型
- string 字符串(可以为整形、浮点型和字符串,统称为元素)
- list:列表
- set:集合
- zset(sorted set:有序集合).
- hash:哈希散列
1.Redis的高可用部署方式
- 哨兵模式
- 集群模式
- 单机模式
2、Redis高并发和快速的原因
(1)redis是基于内存的,内存的读写速度非常快;
(2)redis是单线程的,省去了很多上下文切换线程的时间;
(3)redis使用多路复用技术,可以处理并发的连接。
缺点:无法发挥多核CPU性能
4、缓存雪崩
如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。
解决办法:没有完美的解决方案,可以通过随机算法让失效时间随机分布,避免同一时刻失效,使用集群提高服务器可用性。
5、缓存穿透
访问一个不存在的key,缓存不起作用,请求会穿透到DB,可能DB也没查到,流量大时DB会挂掉。
解决办法:
1.采用布隆过滤器
2缓存空值。
6、缓存击穿
缓存击穿是指缓存中没有但数据库中有的数据,比如是缓存重新构建的时候,大量的并发请求进来导致未命中缓存,引起数据库压力瞬间增大,造成过大压力
解决办法:
1.设置热点数据永远不过期。
2.加互斥锁,互斥锁
3.前置处理 对于同一个数据大量并发请求使用流量进行热点key限流熔断(如:Sentinel)
7、Redis的数据持久化方式
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。(更高的数据安全性)
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。(RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快)