![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 79
分享Redis杂七杂八
西瓜味儿的小志
这个作者很懒,什么都没留下…
展开
-
Redis面试之过期策略及内存淘汰机制
Redis过期策略主要有两个: 定期删除+惰性删除 1、定期删除 Redis 将每个设置了过期时间的 key 放到独立的字典中,默认每 100ms 扫描一次,大致流程为: 随机选择 20 个 key 删除 20 个 key 中过期的 key 判断过期的 key 比例,如果超过总过期 key 数量的 1/4,再从步骤 1开始执行继续删除知道满足条件 那么问题来了,定期删除策略中为什么只随机扫描一些 key 而不是扫描所有的 key? Redis 是单线程啊,设想一下,如果 key 都有过期时间,全部扫一遍原创 2021-09-29 17:18:19 · 116 阅读 · 0 评论 -
Redis面试之单机、主从、哨兵、集群模式
一、单机模式 就是安装一个 redis 供业务方调用,没什么好说的,适用于对高可用要求低的场景。 优点: 部署简单,成本低,不需要同步数据 缺点: 1、可靠性差,宕机数据可能丢失 2、性能受限于CPU的处理能力,容量不能水平扩展 二、主从同步(复制) 不是单机了,至少得有两个redis服务器,将一台 redis 服务器当做主节点(master),其他 redis 服务器作为主节点的从节点(slave),可以将 master 的数据复制到其他 slave 节点(数据的复制是单向的,只能由主节点到原创 2021-09-29 11:26:40 · 272 阅读 · 0 评论 -
Redis面试之持久化机制(RDB、AOF)
所谓知其然知其所以然,开篇咱们先考虑一个问题,那就是Redis为什么需要将数据持久化呢,快,先思考一分钟! 好了,大家都知道 redis 将数据存储在内存里,但是不怕一万就怕万一,万一哪天机器咔嚓一下宕机了,那么后果可能很操蛋,数据可能会全部丢失,为了避免这种糟糕的情况就需要持久化机制来保证数据不会因为某些故障而丢失。 下面进入正题 Redis 的持久化机制主要有两种: 一是RDB快照,二是AOF日志。 一、RDB快照 这种机制是将内存中数据以快照的方式写入到二进制文件里,默认的文件是 dump.rdb。原创 2021-09-23 14:40:33 · 311 阅读 · 0 评论 -
Redis面试之杂七杂八
1、redis五种数据类型 String(字符串) 介绍:redis 最基本的类型,可以包含任何数据,比如jpg图片或者序列化的对象,规定字符串的长度不得超过512MB,此类型和memcache相似,作为常规的key-value缓存应用。。 Redis的字符串有两种存储方式,在长度特别短时,使用embstr形势存储,而长度超过44字节时候,使用raw形势存储。 场景:访问量统计:例如微博数、粉丝数等 Hash(哈希) 介绍:hash 是一个键值(key=>value)对集合,是一个 string 类原创 2021-09-22 10:30:56 · 145 阅读 · 0 评论 -
缓存穿透、缓存击穿和缓存雪崩
1、缓存穿透 缓存和数据库中都没有的数据,但是用户不断发起请求,如发起为 id 为“-1”的数据或id为特别大不存在的数据。此时所有的请求都会打到数据库上,导致数据库压力过大。 解决方案: (1)接口层增加校验,如用户鉴权校验,id做基础校验,id<=0 的直接拦截 (2)如果从缓存和数据库中都没有取到数据,也可以将 key-value 对写为 key-null,然后将缓存有效时间设置短点,如30秒(设置太长会导致正常情况也没法使用)。这样可以防止攻击用户反复用同一个 id 暴力攻击 (3)布隆过滤器原创 2021-09-16 17:23:02 · 272 阅读 · 0 评论