【面试题】Redis篇-常见面试题p1,2024年最新新网银行面经

👨‍💻面试官追问:分别说说各个数据类型常用的使用场景?

  1. String
  • 缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力

  • 计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源

  • session:常见方案spring session + redis实现session共享

  1. List
  • 阻塞队列:Redis的lpush + brpop命令组合即可实现阻塞队列,生产者客户端是用lpush 从列表左侧插入元素,多个消费者客户端使用 brpop 命令阻塞式的“抢"列表尾部的元素,多个客户端保证了消费的负载均衡和高可用性。
  1. Hash
  • 缓存:哈希结构相对于字符串序列化缓存信息更加直观,而且更节省空间,并且在更新操作上更加便捷,所以常常用于缓存用户信息等。
  1. Set
  • 标签(tag):给用户添加标签,或者用户给消息添加标签,这样有同一标签或者类似标签的可以给推荐关注的事或者关注的人。

  • 点赞,或点踩,收藏等:可以放到set中实现

  1. zset
  • 排行榜:有序集合经典使用场景。例如小说,视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。

4.说一下Redis常见的功能有哪些?


  1. 数据缓存功能

  2. 分布式锁的功能

  3. 支持数据持久化

  4. 支持事务

  5. 支持消息队列

5.说一下Redis的常用的使用场景?


  1. 缓存

减轻MySQL的查询压力,提升系统性能

  1. 排行榜

利用Redis的SortSet(有序集合)实现

  1. 计算器/限速器
  • 利用Redis 中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等。

  • 限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力

  1. 好友关系

利用集合的一些命令,比如求交集、并集、差集等。可以方便解决一些共同好友、共同爱好之类的功能

  1. 消息队列

除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比如︰到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用List 来完成异步解耦

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值