前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指 Offer:Redis 的 14 大使用场景!

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

作者头像
全栈程序员站长
发布2022-07-11 12:48:18
2230
发布2022-07-11 12:48:18
举报
文章被收录于专栏:全栈程序员必看

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

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

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

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

这个问题其实很套路。第一个回答往往都会是“缓存”。缓存确实是 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.cn/112064.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档