
Redis
Redis相关面试题
一个带圈的糖
无需言,做自己
展开
-
Redis 中缓存过期该如何剔除?RDB 和 AOF 又是指的什么?
在Redis中,还有一种称为"TTL" (Time To Live) 的过期策略,可以设置每个key的过期时间,超过这个时间后,数据会被自动删除。原创 2023-05-29 22:26:30 · 307 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩分别是什么
缓存中存放的大多都是热点数据,目的就是防止请求可以直接从缓存中获取到数据,而不用访问 Mysql 。1.缓存雪崩:如果缓存中某一时刻大批热点数据同时过期,那么就可能导致大量请求直接访问 Mysql 了,解决办法就是在过期时间上增加一点随机值,另外如果搭建一个高可用的 Redis 集群也是防止缓存雪崩的有效手段2.缓存击穿:和缓存雪崩类似,缓存雪崩是大批热点数据失效,而缓存击穿是指某一个热点 key 突然失效,也导致了大量请求直接访问 Mysql 数据库,这就是缓存击穿,解决方案就是考虑这个热点 key原创 2023-02-21 08:28:07 · 142 阅读 · 0 评论 -
Redis 分布式锁底层是如何实现的?
1.首先利用 setnx 来保证:如果 key 不存在才能获取到锁,如果 key 存在,则获取不到锁2.然后还要利用 lua 脚本来保证多个 redis 操作的原子性3.同时还要考虑到锁过期,所以需要额外的一个看门狗定时任务来监听锁是否需要续约4.同时还要考虑到 redis 节点挂掉后的情况,所以需要采用红锁的方式来同时向 N /2+1个节点申请锁,都申请到了才证明获取锁成功,这样就算其中某个 redis 节点挂掉了,锁也不能被其他客户端获取到原创 2023-02-20 12:13:01 · 229 阅读 · 0 评论 -
Redis 有哪些数据结构?分别有哪些典型的应用场景?
Redis 的数据结构有:1.字符串:可以用来做最简单的数据缓存,可以缓存某个简单的字符串,也可以缓存某个 json 格式的字符串, Redis 分布式锁的实现就利用了这种数据结构,还包括可以实现计数器、 Session 共享、分布式 ID2.哈希表:可以用来存储一些 key - value 对,更适合用来存储对象3.列表: Redis 的列表通过命令的组合,既可以当做栈,也可以当做队列来使用,可以用来缓存类似微信公众号、微博等消息流数据4.集合:和列表类似,也可以存储多个元素,但是不能重复,集合可原创 2023-02-20 12:16:21 · 88 阅读 · 0 评论 -
Redis 主从复制的核心原理
Redis 的主从复制是提高 Redis 的可靠性的有效措施,主从复制的流程如下:1.集群启动时,主从库间会先建立连接,为全量复制做准备2.主库将所有数据同步给从库。从库收到数据后,在本地完成数据加载,这个过程依赖于内存快照 RDB3.在主库将数据同步给从库的过程中,主库不会阻塞,仍然可以正常接收请求。否则, redis 的服务就被中断了。但是,这些请求中的写操作并没有记录到刚刚生成的 RDB 文件中,为了保证主从库的数据一致性,主库会在内存中用专门的 replication buffer ,记录 R原创 2023-02-20 12:11:03 · 149 阅读 · 0 评论