跳转至

适用场景

很多大型电商网站、视频直播和游戏平台等,存在 大规模数据访问,对 数据查询效率要求高,且 数据结构简单不涉及太多关联查询。 这种场景使用 Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘 IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。 Redis 对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。

以下举几个典型样例:

  1. 电商网站 - 秒杀抢购

    电商网站的商品类目、推荐系统以及秒杀抢购活动,适宜使用 Redis 缓存数据库。

    例如秒杀抢购活动,并发高,对于传统关系型数据库来说访问压力大,需要较高的硬件配置(如磁盘 IO)支撑。 Redis 数据库单节点 QPS 支撑能达到 10 万,轻松应对秒杀并发。实现秒杀和数据加锁的命令简单,使用 SET、GET、DEL、RPUSH 等命令即可。

  2. 视频直播 - 消息弹幕

    直播间的在线用户列表,礼物排行榜,弹幕消息等信息,都适合使用 Redis 中的 SortedSet 结构进行存储。

    例如弹幕消息,可使用 ZREVRANGEBYSCORE 排序返回,在 Redis 5.0 中,新增了 zpopmax、zpopmin 命令,更加方便消息处理。

  3. 游戏应用 - 游戏排行榜

    在线游戏一般涉及排行榜实时展现,比如列出当前得分或战力最高的 10 个用户。 使用 Redis 的有序集合存储用户排行榜非常合适,有序集合使用非常简单,提供多达 20 个操作集合的命令。

  4. 社交 App - 返回最新评论/回复

    在 web 类应用中,常有“最新评论”之类的查询,如果使用关系型数据库,往往涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。

    使用 Redis 的 List(链表)来存储最新 1000 条评论,当请求的评论数在这个范围,就不需要访问磁盘数据库,直接从缓存中返回,减少数据库压力的同时,提升 App 的响应速度。

评论