摘要: 本文主要介绍视频直播间系统,以及如何使用阿里云Redis混合存储实例方便快捷的构建大数据量,低延迟的视频直播间服务。
背景
视频直播间作为直播系统对外的表现形式,在整个系统中处于核心地位。通常除了视频直播窗口外,直播间还包含在线用户,礼物,评论,点赞,排行榜等信息。直播间消息,时效性高,互动性强,对系统时延有着非常高的要求,非常适合使用Redis等缓存服务来处理。
直播信息
实时排行信息
实时排行信息包含直播间在线用户列表,各种礼物排行榜,弹幕消息(可以理解为按消息维度的消息排行榜)等信息,适合使用Redis中的SortedSet结构进行存储。
例如,以unix timestamp+毫秒数为分值,记录user55的直播间增加的5条弹幕
redis> ZADD user55:_danmu 1523959031601166 message111111111111 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959031601266 message222222222222 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959088894232 message33333 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959090390160 message444444 (integer) 1 11.160.24.14:3003> ZADD user55:_danmu 1523959092951218 message5555 (integer) 1
返回最新的3条弹幕信息:
redis> ZREVRANGEBYSCORE user55:_danmu +inf -inf LIMIT 0 3 1) "message5555" 2) "message444444" 3) "message33333"
返回指定时间段内的3条弹幕信息:
redis> ZREVRANGEBYSCORE user55:_danmu 1523959088894232 -inf LIMIT 0 3 1) "message33333" 2) "message222222222222" 3) "message111111111111"
计数类信息
计数类信息以用户维度为例,有未读消息数,关注数,粉丝数,经验值等等。这类消息适合以Redis中的Hash结构进行存储。
redis> HSET user:55 follower 5 (integer) 1 redis> HINCRBY user:55 follower 1 //关注数+1 (integer) 6 redis> HGETALL user:55 1) "follow" 2) "6"
时间线信息
时间线信息是以时间为维度的信息列表,典型的比如主播动态,新帖。这类信息排序方式是固定的时间顺序,可以考虑使用List或者SortedSet来存储。
redis> LPUSH user:55_recent_activitiy '{datetime:201804112010,type:publish,title:开播啦,content:加油}' (integer) 1 redis> LPUSH user:55_recent_activitiy '{datetime:201804131910,type:publish,title:请假,content:抱歉,今天有事鸽一天}' (integer) 2 redis> LRANGE user:55_recent_activitiy 0 10 1) "{datetime:201804131910,type:publish,title:\xe8\xaf\xb7\xe5\x81\x87\",content:\xe6\x8a\xb1\xe6\xad\x89\xef\xbc\x8c\xe4\xbb\x8a\xe5\xa4\xa9\xe6\x9c\x89\xe4\xba\x8b\xe9\xb8\xbd\xe4\xb8\x80\xe5\xa4\xa9}" 2) "{datetime:201804112010,type:publish,title:\xe5\xbc\x80\xe6\x92\xad\xe5\x95\xa6,content:\xe5\x8a\xa0\xe6\xb2\xb9}"
阿里云Redis优势
- 阿里云主从版Redis提供10万的QPS,读写分离版本Redis提供60万QPS最大力度支持系统的高并发需求。
- 资深专家团队深度开发维护Redis源码,经千万服务考验,超高稳定性和安全性。
- 双机热备架构,故障秒级自动迁移,全力保障订单数据。
- 一键创建,一键扩容,全方位智能监控运维平台。请求量,活跃度一眼就能看清。
- 专业服务团队,实时监控可用性,7 x 24小时在线咨询。
使用Redis混合存储实例存储信息
阿里云Redis混合存储产品完全兼容Redis协议,用户无需修改任何代码,以低成本的NVMe盘存储不常访问的直播间数据,可以突破内存容量限制,单实例最高可支持TB级别的数据容量。
- 当Redis混合存储实例内存可以存储所有直播间数据时,访问所有直播间数据均可享受极致性能。
- 当直播间数据越来越多,快要超过实例内存限制时,Redis混合存储实例会自动从访问频率,访问时间等维度选择冷门的直播间数据,后台将其Value存储到磁盘上;
- 热门直播间数据仍然保留在内存中,性能不受任何影响;
- 当访问到磁盘上的冷门直播间数据时,数据会自动从后台加载到内存中,所有IO操作都经过阿里云自研的新一代存储引擎Fusion Engine极致优化,4K数据加载速度在20us左右;
- 通过将部分冷数据存储到磁盘的方式,有效降低了用户成本并突破内存对单实例容量的限制。
阅读更多干货好文,请关注扫描以下二维码:
相关推荐
阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...
阿里云Redis服务提供了多种产品形态,包括标准版、双副本、集群版等,满足不同场景的需求。 在游戏行业中,传统数据库的压力问题始终是一个重要的问题。随着游戏行业的发展,游戏数据量的增加、玩家的增加和游戏的...
阿里云Redis是一款基于开源Redis数据库服务的云产品,它提供了高性能、高可用、安全的数据存储解决方案,广泛应用于缓存、消息队列、数据结构服务器等多个场景。以下将详细阐述创建Redis实例、设置白名单以及连接...
在这样的背景下,阿里云推出的Redis技术服务,作为一项依托于云平台的强大解决方案,不仅集合了Redis的优秀特性,还融入了阿里云在数据服务领域的技术创新,为用户构建高效和可靠的数据存储及缓存系统提供了坚实的...
### 阿里云Redis规范详解 #### 一、键值设计 **1.1 Key名设计** - **可读性和可管理性**: 使用清晰、有意义的命名规则以确保键的可读性和易于管理。例如,采用“业务名:表名:id”这样的格式,能够很好地表明键的...
**阿里云Redis**是阿里云提供的一种基于内存的数据存储服务,支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合(Sorted Sets)。它可以作为数据库、缓存和消息...
阿里云Redis技术架构是针对企业级应用而设计的高性能、高可用的数据存储解决方案。该架构主要分为单机、集群、容灾和多活四种模式,分别适用于不同的业务场景。 单机模式适合对协议敏感且对性能有较高要求的场景,...
《阿里云数据库Redis版-最佳实践》文档主要探讨了如何利用阿里云提供的ApsaraDB for Redis服务构建高效、可靠的在线游戏积分排行榜系统。本文将深入解析这一最佳实践,包括Redis的基本功能、如何连接Redis、数据结构...
阿里云Redis读写分离的流量转发是通过负载均衡SRR算法来实现的,可以智能地调度流量,提高系统的性能和可用性。 阿里云Redis读写分离的一致性 阿里云Redis读写分离的一致性是通过确保所有节点的数据一致来实现的,...
2018数据库直播大讲堂峰会-Redis专场阿里云Redis开发者午光对Redis读写分离进行介绍的PPT。
阿里云Redis开发规范1主要关注键值设计、命令使用、客户端使用等方面,旨在优化Redis的使用,提高系统...遵循这些规范,开发者可以更高效、安全地利用阿里云Redis服务,优化数据存储和查询,提高系统整体性能和稳定性。
本文将详细介绍阿里巴巴28条Redis使用规范,涵盖了Redis性能优化、数据存储、安全、实例管理等方面的内容。 规范一:控制key的长度 为了避免Redis中的keys过长,阿里巴巴建议控制key的长度,尽量将String类型的数据...
阿里云Redis云服务是针对企业级应用而设计的高性能、高可用的数据存储解决方案。作为一款基于ApsaraDB平台的服务,阿里云Redis提供了多种产品形态,包括主从双副本、主从单副本以及集群双副本,以满足不同业务场景的...
阿里云Redis数据库技术旨在提供高效、高可用的缓存与数据存储解决方案。在当前的阿里云Redis服务中,无论是主从版还是集群规格,读写操作均集中于master节点,以确保数据一致性。然而,这种架构在面对高并发读取需求...
本文主要介绍在使用阿里云 Redis 的开发规范,从下面几个方面进行说明。 键值设计 命令使用 客户端使用 相关工具 通过本文的介绍可以减少使用 Redis 过程带来的问题。 一、键值设计 1、key 名设计 可读性和可管理性 ...
在《阿里云开发手册-Redis》中,主要涵盖了Redis的开发规范、性能优化以及Redis 7.0的新特性和历史演变。Redis作为一个流行的键值对存储数据库,广泛用于数据库、缓存和消息中间件的角色。其高性能和持久化能力使其...
标题中提到的“阿里云Redis全球多活产品”代表了阿里云在云数据库服务方面的先进技术和产品,具体来说是在Redis这一高性能数据库服务上的一个高级应用。多活(Multi-active)架构是指在不同的地理位置部署多个活跃的...
阿里云数据库Redis版-产品简介.pdf
阿里云redis集群公网访问,百分之百成功率。亲自试验,详细步骤。