面试常问集锦——Redis部分

Redis夺命连环11问

《我想进大厂》之Redis夺命连环11问

第33期 Redis的43连环炮,试试你能扛住几个

第33期 Redis的43连环炮,试试你能扛住几个

应对面试你要掌握 Redis 哪些原理

应对面试你要掌握 Redis 哪些原理

【对线面试官】Redis基础

【对线面试官】Redis基础

大厂面试!我和面试官之间关于Redis的一场对弈!

大厂面试!我和面试官之间关于Redis的一场对弈!

Redis 6.0 新特性-多线程连环13问!

Redis 6.0 新特性-多线程连环13问!


支持哪些基本数据类型

(1)string,字符串,最大能存储512MB

redis 127.0.0.1:6379> SET runoob "菜鸟教程"
OK
redis 127.0.0.1:6379> GET runoob
"菜鸟教程"

(2)hash 哈希表

redis 127.0.0.1:6379> HMSET runoob field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET runoob field1
"Hello"
redis 127.0.0.1:6379> HGET runoob field2
"World"

(3)list,列表,头尾部都可以添加元素

redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"

(4)set,无序不重复集合

redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob

1) "redis"
2) "rabbitmq"
3) "mongodb"

(5)zset,有序不重复集合,每个元素关联一个score,按照score进行排序

redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"

总结:


Redis 为什么默认 16 个数据库?

Redis 为什么默认 16 个数据库?


Redis数据结构底层系列-SDS

敖丙带你看Redis数据结构底层系列-SDS


字典内部构造与rehash 

Redis面试系列-八问字典内部构造与rehash


跳表的原理

带你一步一步认识跳跃链表_阳阳的博客-CSDN博客_跳跃链表

Redis—跳跃表

Redis—跳跃表


Bitmap简介

Bitmap简介 - 废物大师兄 - 博客园


42张图,带你真正搞懂redis数据类型的底层

42张图,带你真正搞懂redis数据类型的底层

十二张图带你了解 Redis 的数据结构和对象系统

十二张图带你了解 Redis 的数据结构和对象系统

Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附实践清单

Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附实践清单

使用Redis,你必须知道的21个注意要点

https://mp.weixin.qq.com/s/WWJyrPToqLSO6qGxtS0hRg


Redis的键过期策略 

Redis的键过期策略、内存淘汰机制与LRU实现,这一篇给你安排了!_阳阳的博客-CSDN博客

能说不了解吗,就算是没有听说过,咋们也可以来一句:“不好意思面试官,这一块还不怎么深入,但是从字面意思来理解巴拉巴拉”,不至于一脸懵逼。下面我们看看redis的缓存策略

Redis中通过maxmemory参数来设定内存的使用上限,如果Redis所使用内存超过设定的最大值,那么会根据配置文件中的策略选取要删除的key来删除,从而留出新的键值空间。主要的六种淘汰key策略

  1. volatile-lru

在键空间中设置过期时间,移除哪些最近最少使用的key,占着茅坑不拉屎的key

  1. allkeys-lru

移除最近最少使用的key

  1. volatile-random

在键空间中设置过期时间,随机移除一个key

  1. allkeys-random

随机移除一个key

  1. noeviction

当内存使用达到阀值的时候,所有引起申请内存的命令会报错;

ok,现在知道了需要淘汰哪些key,那我们如何去淘汰这些key

  1. 定时删除

很简单,设置一个闹钟,闹钟响了就删除即可。这种方式对于内存来说还是比较友好,内存不需要啥额外的操作,直接通过定时器就可保证尽快的删除。对于CPU来说就有点麻烦了,如果过期键比较多,那么定时器也就多,这删除操作就会占用太多的CPU资源

  1. 惰性删除

每次从键空间获取键的时候检查键的过期时间,如果过期了,删除完事。

  1. 定期删除

每隔一段时间就去数据库检查,删除过期的键

这种方案是定时删除和惰性删除的中和方法,既通过限制删除操作执行的时长来减少对CPU时间的影响,也能减少内存的浪费。但是难点在于间隔时长需要根据业务情况而定。


布隆过滤器的原理 

谈谈布隆过滤器_阳阳的博客-CSDN博客


面试官:缓存一致性问题怎么解决?

面试官:缓存一致性问题怎么解决?| 文末送书

哎,这要人老命的缓存一致问题啊!!!

哎,这要人老命的缓存一致问题啊!!!

【面试热点】如何解决缓存系统的数据不一致问题

https://mp.weixin.qq.com/s/g_NKPdZXTI3h8Y573LkkHA

数据库跟缓存的双写一致性

数据库跟缓存的双写一致性

第41期 面试被问:如何保证 Redis 缓存与数据库双写一致性?

第41期 面试被问:如何保证 Redis 缓存与数据库双写一致性?

美团面试题:缓存一致性,我是这么回答的!

美团面试题:缓存一致性,我是这么回答的!


老生常谈的 Redis 雪崩、击穿、穿透、预热、降级一次全安排

老生常谈的 Redis 雪崩、击穿、穿透、预热、降级一次全安排

什么是缓存穿透、击穿与雪崩,怎么处理

缓存穿透

一般来说,缓存系统会通过key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。这个时候如果一些恶意的请求到来,就会故意查询不存在的key,当某一时刻的请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。

如何避免?

对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。对一定不存在的key进行过滤。可以把所有的可能存在的key放到一个大的Bitmap中,查询时通过该bitmap过滤。

缓存雪崩

当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。

如何避免?

在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。

做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期。

不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。

再也不怕,缓存雪崩、击穿、穿透

再也不怕,缓存雪崩、击穿、穿透!


Redis 分布式锁|从青铜到钻石的五种演进方案

https://mp.weixin.qq.com/s/JpAqxQrQA7jRisNqiGoxBA

分布式锁中的王者方案 - Redisson

分布式锁中的王者方案 - Redisson

redis实现分布式锁

七种方案!探讨Redis分布式锁的正确使用姿势 - 掘金

面试题:Redis如何实现分布式锁!

面试题:Redis如何实现分布式锁!

记一次由Redis分布式锁造成的重大事故,避免以后踩坑!

记一次由Redis分布式锁造成的重大事故,避免以后踩坑!


Redis:从应用到底层,一文帮你搞定

Redis:从应用到底层,一文帮你搞定


Redis 核心篇:唯快不破的秘密

帐号已迁移

搞懂 Redis 为什么这么快

要搞懂 Redis 为什么这么快,看这 15 张图就够了

Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?

Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?


怎么解决热key与大key(多大叫大key)

谈谈redis的热key问题如何解决

【原创】谈谈redis的热key问题如何解决 - 孤独烟 - 博客园


【对线面试官】Redis持久化

【对线面试官】Redis持久化

Redis—持久化

Redis—持久化

Redis 日志篇:无畏宕机快速恢复的杀手锏

帐号已迁移


面试官:Redis 主从复制时网络开小差了怎么整?

面试官:Redis 主从复制时网络开小差了怎么整?


你管这破玩意叫哨兵?

你管这破玩意叫哨兵?


误用Redis命令导致服务器挂了

误用Redis命令导致服务器挂了,领导让我写事故报告


实现一个消息队列

什么鬼,面试官竟然让敖丙用Redis实现一个消息队列!!?

Redis延时队列,这次彻底给你整明白了

Redis延时队列,这次彻底给你整明白了


实现排行榜

凉了呀,面试官叫why哥设计一个排行榜。|技术点评 - 掘金


16张图吃透 Redis 架构演进

干货 | 16张图吃透 Redis 架构演进

2w字讲透如何排查 Redis 性能问题!从此调优不在话下

2w字讲透如何排查 Redis 性能问题!从此调优不在话下

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunAlwaysOnline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值