剑指 Offer:Redis 的 14 大使用场景!

剑指 Offer:Redis 的 14 大使用场景!

大家好,又见面了,我是全栈君。

昨天一位网友在面试腾讯中被问到了,Redis 是单线程的,为什么还那么快?他回答的不是很好,而且面试官也善意的提醒了一些关键点,但是由于他没准备,所以再次失败了。

关于这个问题,我其实在一年前就写过这个答案《Redis 是单线程结构,但为何单线程还能支持高并发?》。

今天我们来讨论另外一个关于 Redis 的高频面试题:Redis 的使用场景有哪些?

 

 

剑指 Offer:Redis 的 14 大使用场景!

这个问题其实很套路。第一个回答往往都会是“缓存”。缓存确实是 Redis 使用最多的领域,但是这个回答往往会被面试官引导到其他技术上,比如:Memcache。也或者会问缓存一致性问题。

如果你回答的不是很好,面试官可能会问,Redis 还有哪些使用场景?或者说 Redis 可以用来做什么?

一部分人可能会回答:分布式锁。说到这个,面试官可能就会问,怎么实现?原理是什么?有什么缺陷等,一回头发现自己又跳坑里了。

所以,今天我就抽个一点时间,根据以前我做电商的经验。分享一下 Redis 的 10 大使用场景。

1、记录帖子或者文章的点赞数、评论数和点击数 (hash)。

2、记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。

3、记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。

4、记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。

5、缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。

6、记录帖子的相关文章 ID,根据内容推荐相关帖子 (list)。

7、如果帖子 ID 是整数自增的,可以使用 Redis 来分配帖子 ID(计数器)。

8、收藏集和帖子之间的关系 (zset)。

9、记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。

10、缓存用户行为历史,进行恶意行为过滤 (zset,hash)。

11、秒杀,抢购(分布式锁)。

12、会话、热点数据(缓存)。

13、收藏商品,聊天,群聊,发布与订阅(pub/sub)。

14、系统解耦,队列(lpush、rpop)。

另外还有一些场景,我没列举到。只要你能回答到上面这些,基本上面试问题不大。但是,我们也要注意,不要刻意的为了使用某一个功能,而故意使用某项技术。比如,Redis 的作者就不推荐在队列等方面使用 Redis 来做。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112064.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]

    菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]进度条的自绘,关键的是用GetWindowLong得到一个进度条的结构:.版本2.数据类型进度条结构   .成员hWnd,整数型,,,进度条窗口句柄   .成员dwStyle,整数型,,,进度条窗口样式   .成员iMin,整数型,,,最小最大进度   .成员iMax,整数型,,,当前进度值

    2022年7月13日
    14
  • 第三章数据链路层_数据链路层链路管理包括

    第三章数据链路层_数据链路层链路管理包括冗余链路出现的背景由于公司对网络的可靠性的要求,大部分公司都会增加额外的交换机,防止在某台交换机出现故障时造成网络的无法使用的情况,例如形成如下图的拓扑的结构。假设W和X交换中的一台出现故

    2022年8月2日
    4
  • tree命令详解

    tree命令详解命令:tree命令说明:以树状格式列出目录的内容,查看文件系统的结构命令用法:tree[选项]…[文件]…参数说明:参数参数说明备注-a打印所有文件,包括隐藏文件、目录-C在文件和目录清单上加上色彩,便于区分文件类型-d仅列出目录名称,而非内容-D列出文件或目录更改时间-L目录树的最大显示深度-p打印结构同时打印文件权限-l跟随目录的符号链接,就像它们是目录一样。避免了导致递归循环的链接-f打印每个

    2022年7月25日
    8
  • JavaScript的变量作用域深入理解(转)

    JavaScript的变量作用域深入理解(转)

    2021年9月6日
    40
  • Postman下载与安装操作步骤【超详细】

    Postman下载与安装操作步骤【超详细】工欲善其事必先利其器,一套超详细清晰的下载安装postman教程,让小伙伴们轻轻松松安装好postman,快来试一试吧!!!

    2022年6月16日
    55
  • linux移植ntpdate「建议收藏」

    linux移植ntpdate「建议收藏」今天想让板子在开机的时候自动去同步网络上的时间,网上查了一下,需要使用到ntpdate命令。但是我使用的文件系统(busybox制作的文件系统)没有该命令,所以移植了一下。由于移植ntpdate需要用到openssl的头文件和库,所以也移植了openssl。PC系统:UbuntuUbuntu12.04.4LTS1.创建工作目录1mkdirc

    2022年9月24日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号