CN115052040A - Feed流实现方法、系统、电子设备和存储介质 - Google Patents
Feed流实现方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115052040A CN115052040A CN202210451015.4A CN202210451015A CN115052040A CN 115052040 A CN115052040 A CN 115052040A CN 202210451015 A CN202210451015 A CN 202210451015A CN 115052040 A CN115052040 A CN 115052040A
- Authority
- CN
- China
- Prior art keywords
- content
- pushed
- feed
- time
- time line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000007246 mechanism Effects 0.000 claims abstract description 70
- 238000005192 partition Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 230000009849 deactivation Effects 0.000 claims description 4
- 230000001550 time effect Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Computing Systems (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种Feed流实现方法、系统、电子设备和存储介质,包括:基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。本发明针对主流社交网络软件中采用的Feed流数据模式,通过对数据推送效能和数据存储模式的改进,实现推拉相结合,按需进行推送和拉取数据流,高效利用Redis缓存,提高用户访问Feed系统时的动态性能,提升用户体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种Feed流实现方法、系统、电子设备和存储介质。
背景技术
目前,主流的社交网络软件(Social Network Software,SNS)系统包括微博、微信朋友圈等,通常都是通过Feed流进行消息推送。Feed流本质上是一种数据流,是将“N个发布者的信息单元”通过“关注关系”发送给“M个接收者”。
在当下的SNS系统以及Feed微博系统蓬勃发展下,类似新鲜事、微博、朋友圈等各种产品,尤其App产品中,需求旺盛,哪怕非Feed系统产品,也可能会有集成类型功能的需求。而当下主流产品,采用自己独立的方案,有的使用推方案,有的使用拉方案,没有形成统一高效的数据处理机制,导致用户数据处理不够及时,无法较好地识别热点信息和非热点信息,另外对信息的存储处理也不够理想。
因此,需要提出新的针对社交网络软件中Feed流的实现方法,能综合解决上述问题。
发明内容
本发明提供一种Feed流实现方法、系统、电子设备和存储介质,用以解决现有技术中社交网络软件处理用户推送数据时不能有效地平衡数据推送和数据拉取,以及无法高效利用缓存的缺陷。
第一方面,本发明提供一种Feed流实现方法,包括:
基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;
基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;
根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
根据本发明提供的一种Feed流实现方法,还包括:
基于Feed辅助拉取机制或Feed推拉结合处理机制,更新当前访问内容。
根据本发明提供的一种Feed流实现方法,基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线,包括:
确定向单个用户分配所述时间线,所述时间线用于反馈所述单个用户的访问动态;
将所述时间线存储至Redis内存数据库中。
根据本发明提供的一种Feed流实现方法,基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容,包括:
获取所述待推送内容的访问时间距离;
若确定所述访问时间距离在预设天数范围内,则将所述待推送内容存储至天数存储表中;
若确定所述访问时间距离在所述预设天数范围外,以及在预设月份范围内,则将所述待推送内容存储至月份存储表中;
若确定所述访问时间距离在所述预设月份范围外,则将所述待推送内容存储至全量存储表中。
根据本发明提供的一种Feed流实现方法,根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容,包括:
确定时间线访问时长阈值,获取用户访问Feed流的访问时间;
若确定所述访问时间小于等于所述时间线访问时长阈值,则确定所述时间线为激活状态,发送所述待推送内容;
若确定所述访问时间大于所述时间线访问时长阈值,则确定所述时间线为去激活状态,丢弃所述待推送内容。
根据本发明提供的一种Feed流实现方法,基于Feed辅助拉取机制,更新当前访问内容,包括:
待确定所述时间线处于激活状态之后,获取第一预设条数的时间线地址,基于所述时间线地址更新所述当前访问内容;
若确定所述时间线处于临界到期范围内,则将所述时间线的时效延长预设天数;
若确定所述时间线不存在,从全量表中获取第二预设条数的时间线地址,并确定所述时间线地址的时效为所述预设天数。
根据本发明提供的一种Feed流实现方法,基于Feed推拉结合处理机制,更新当前访问内容,包括:
若确定所述时间线地址超过时间线地址阈值,则从所述数据库中拉取所述时间线;
基于所述当前访问内容的访问时间距离,确定所述数据库中的存储表类型,从对应的存储表中更新所述当前访问内容。
第二方面,本发明还提供一种Feed流实现系统,包括:
第一存储模块,用于基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;
第二存储模块,用于基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;
发送模块,用于根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述Feed流实现方法。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述Feed流实现方法。
第五方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述Feed流实现方法。
本发明提供的Feed流实现方法、系统、电子设备和存储介质,通过对数据推送效能和数据存储模式的改进,实现推拉相结合,按需进行推送和拉取数据流,高效利用Redis缓存,提高用户访问Feed系统时的动态性能,提升用户体验。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的Feed流实现方法的流程示意图;
图2是本发明提供的Feed流实现方法的系统架构图;
图3是本发明提供的时间线在Redis中的结构示意图;
图4是本发明提供的数据库表结构示意图;
图5是本发明提供的Feed流实现系统的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中的局限性,本发明提出一种Feed流实现方法,图1是本发明提供的Feed流实现方法的流程示意图,如图1所示,包括:
步骤100:基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;
步骤200:基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;
步骤300:根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
具体地,本发明针对Feed流的实现架构和机制,提出与缓存相结合的方案,尤其是针对数据发送场景,提出包括Redis时间线缓存机制、Feed发送时推送机制和Feed发送时按照时间分区数据库存储机制。
首先基于Redis时间线缓存机制在Feed流中存储待推送内容的时间线,然后采用基于Feed时间分区数据库存储机制,在数据库中存储待推送内容,进一步根据Feed推送机制和得到的时间线,从数据库中取出待推送内容,将该内容发送出去。架构如图2所示。
本发明通过处理Feed系统中,推模式在分发推送者人数非常大,通常上千万时的推送效能问题,以及拉模式时,用户访问刷新动态性能底下的问题,以及过分依赖Redis等缓存的性能与资源平衡问题,推拉相结合,按需推送以及按需拉取,最大化的利用少量Redis缓存,降低成本,最大化地提高用户访问Feed系统动态时的性能。
基于上述实施例,还包括:
基于Feed辅助拉取机制或Feed推拉结合处理机制,更新当前访问内容。
除了发送内容外,本发明还针对刷新内容提出了基于Feed辅助拉取机制和Feed推拉结合处理机制,用于更新当前访问内容。
具体地,Feed访问刷新时辅助拉取机制。用户访问刷新自己的动态圈时,可能会去数据库中拉取自己关注者或者相关人的Feed,这个过程就是拉取。
另外,Feed访问刷新时推拉结合逻辑处理机制,用户访问刷新自己的动态圈时,实际中会根据自己的时间线是否存在以及做选择,这个逻辑处理称为推拉结合逻辑处理。
本发明通过推拉结合的方式实现动态刷新推送内容,有效减少刷新时间,使用户更快速地获取到自己需要的信息。
基于上述任一实施例,基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线,包括:
确定向单个用户分配所述时间线,所述时间线用于反馈所述单个用户的访问动态;
将所述时间线存储至Redis内存数据库中。
需要说明的是,本发明为确保系统的兼容性,采用Java开发平台,可实现跨平台开发,缓存层使用Redis内存数据库,存储热数据,持久层使用MySql数据库,新鲜事刷新属于高频次操作,高并发的情况下对数据库压力很大,因此将热数据放到Redis中,降低对数据库的压力。
对于本发明提出的时间线,在Redis中可体现为一个key值,其结构是一个zset,样例如图3所示,zset即是一个set(保证内部value的唯一性),又对每个value赋予了一个score(代表value的排序权重),其内部数据为“跳跃链表”,更具体的来说,zset的数据结构其实为hash+"跳跃链表"来实现的。
每个用户id会对应一个key,保证每个用户的时间线的独立性和隔离性,存储的value是feed Id,score是发表新鲜事时的毫秒时间戳,使用zset结构,可以很方便快速的获取想要的feed Id。
通常在发送Feed时,首先会在Redis中存储Feed的内容,并产生Feed Id。此时,直接返回请求方Feed Id即可,服务器异步执行后续逻辑。
本发明通过引入时间线概念,较好地解决了针对大粉丝用户进行推送和优化,通过时间线来识别用户的活跃度,只针对活跃用户推送,减少了对资源的浪费,提高了分发推送的效率,更贴近实际需求。
基于上述任一实施例,基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容,包括:
获取所述待推送内容的访问时间距离;
若确定所述访问时间距离在预设天数范围内,则将所述待推送内容存储至天数存储表中;
若确定所述访问时间距离在所述预设天数范围外,以及在预设月份范围内,则将所述待推送内容存储至月份存储表中;
若确定所述访问时间距离在所述预设月份范围外,则将所述待推送内容存储至全量存储表中。
具体地,本发明提出的数据库存储,如图4所示,采用三种类型的存储表,三种存储表的结构完全相同,区别仅在表名不同,存储容量不同,分为X天表、X月表和全量表。读取内容的访问时间距离,如果访问时间距离当前在X天内时,直接定位存储到X天表,如果在X天~X月时,定位存储到X月表,否则直接定位存储到全量表中。
本发明针对没有时间线以及没收到推送的场景,在Feed发送时按照时间分区数据库存储机制,发送Feed动态消息时,除了要分发给相关用户时间线,同时还需要在数据库中做实际的分类存储,便于后续根据实际情况进行取用;实现了存储策略优化,分三类表存储,近期数据放X天表,其次X月表,最后全量表,在拉取层面相当于做了冷热分离,提高了拉取时的性能。
基于上述任一实施例,根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容,包括:
确定时间线访问时长阈值,获取用户访问Feed流的访问时间;
若确定所述访问时间小于等于所述时间线访问时长阈值,则确定所述时间线为激活状态,发送所述待推送内容;
若确定所述访问时间大于所述时间线访问时长阈值,则确定所述时间线为去激活状态,丢弃所述待推送内容。
具体地,对于Feed发送时推送机制,在发送Feed动态消息时,需要给自己的关注者或者相关的人的时间线推送消息。
对于分发推送逻辑,找到关注的用户,需要给这部分人推送动态新鲜事,但是,并非全部给关注用户的人推送,为了避免性能浪费,例如,有的用户的关注者上千万,但是这上千万人并非都是活跃用户,如果全部推送,势必会浪费资源,所以,需要根据人的时间线来确定选择,每个人的时间线会被定义成有时效的,只要用户经常访问自己的Feed系统,那对应的时间线会一直会被激活,也就是延续时间线的寿命;如果超过某个设定时间段不访问,时间线自动销毁,对于没有时间线的用户,认为是非活跃用户,那就不给这些人推送Feed。
对于本发明中的数据推送,在用户发送一条新鲜事时,先在redis中存储下feed的内容,然后把feed Id直接返回,用户感觉是消息已立即发出,体验会更好,此时,后台异步开始进行推送逻辑,先找到关注自己的人的user Ids,然后,遍历这个user Ids,在Redis中查找timeline:{userId}是否存在,如果存在,就给这个timeline存一份feedId,否则,直接忽略。
本发明在拉取数据时,采用冷热结合,将热数据与时间线进行对应,提高热数据访问率,将冷数据存储在数据库中,需要才进行访问,实现了数据分类访问,进一步压缩数据访问时间。
基于上述任一实施例,基于Feed辅助拉取机制,更新当前访问内容,包括:
待确定所述时间线处于激活状态之后,获取第一预设条数的时间线地址,基于所述时间线地址更新所述当前访问内容;
若确定所述时间线处于临界到期范围内,则将所述时间线的时效延长预设天数;
若确定所述时间线不存在,从全量表中获取第二预设条数的时间线地址,并确定所述时间线地址的时效为所述预设天数。
具体地,针对访问刷新数据,当用户刷新自己的新鲜事界面时,首先检查自己的时间线timeline:{userId}是否存在,如果存在,从里面取出固定条数的feed Id,同时还要检查下timeline的过期时间,是否临近过期,如果是,给timeline延长到3天;如果不存在,则从全量表查找关注的人的一定数量的feed Id,如500条,存储到自己的timeline中,并返回固定条数的feedId,并设置timeline的时效是3天。
这样,当下次再访问时,由于自己的时间线中已经存在,会一直访问缓存中的时间线,效率会高很多,也降低了对数据库的访问。
本发明通过用户访问刷新数据时,由时间线存续时间判断需要获取的feed Id,并判断获取数据的数据库来源类型,使用户更快地获取需要刷新的信息。
基于上述任一实施例,基于Feed推拉结合处理机制,更新当前访问内容,包括:
若确定所述时间线地址超过时间线地址阈值,则从所述数据库中拉取所述时间线;
基于所述当前访问内容的访问时间距离,确定所述数据库中的存储表类型,从对应的存储表中更新所述当前访问内容。
具体地,在前述实施例的基础上,当访问时间线时,会存在访问到头的情况,即超过500条时,也就是,用户一直下翻页,翻到500条了,那么此时,就需要去数据库中拉取了,但是,拉取也分情况的,这是需要根据访问时间距离选取对应的数据库中的存储表,根据当前需要定位的feed的时间决定需要去哪个存储表中查询。可以理解的是,越近的数据,必然会落到数据量越小的表上,访问效率肯定会大大提高。
本发明在用户更新访问数据时,当访问的数量超过最大值时,通过访问数据库,进一步刷新内容,使得用户获取更新的推送内容。
下面对本发明提供的Feed流实现系统进行描述,下文描述的Feed流实现系统与上文描述的Feed流实现方法可相互对应参照。
图5是本发明提供的Feed流实现系统的结构示意图,如图5所示,包括:第一存储模块51、第二存储模块52和发送模块53,其中:
第一存储模块51用于基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;第二存储模块52用于基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;发送模块53用于根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
本发明通过处理Feed系统中,推模式在分发推送者人数非常大,通常上千万时的推送效能问题,以及拉模式时,用户访问刷新动态性能底下的问题,以及过分依赖Redis等缓存的性能与资源平衡问题,推拉相结合,按需推送以及按需拉取,最大化的利用少量Redis缓存,降低成本,最大化地提高用户访问Feed系统动态时的性能。
基于上述实施例,系统还包括更新模块54,所述更新模块54用于基于Feed辅助拉取机制或Feed推拉结合处理机制,更新当前访问内容。
本发明通过推拉结合的方式实现动态刷新推送内容,有效减少刷新时间,使用户更快速地获取到自己需要的信息。
基于上述任一实施例,所述第一存储模块51具体用于确定向单个用户分配所述时间线,所述时间线用于反馈所述单个用户的访问动态;将所述时间线存储至Redis内存数据库中。
本发明通过引入时间线概念,较好地解决了针对大粉丝用户进行推送和优化,通过时间线来识别用户的活跃度,只针对活跃用户推送,减少了对资源的浪费,提高了分发推送的效率,更贴近实际需求。
基于上述任一实施例,所述第二存储模块52具体用于获取所述待推送内容的访问时间距离;若确定所述访问时间距离在预设天数范围内,则将所述待推送内容存储至天数存储表中;若确定所述访问时间距离在所述预设天数范围外,以及在预设月份范围内,则将所述待推送内容存储至月份存储表中;若确定所述访问时间距离在所述预设月份范围外,则将所述待推送内容存储至全量存储表中。
本发明针对没有时间线以及没收到推送的场景,在Feed发送时按照时间分区数据库存储机制,发送Feed动态消息时,除了要分发给相关用户时间线,同时还需要在数据库中做实际的分类存储,便于后续根据实际情况进行取用;实现了存储策略优化,分三类表存储,近期数据放X天表,其次X月表,最后全量表,在拉取层面相当于做了冷热分离,提高了拉取时的性能。
基于上述任一实施例,所述发送模块53具体用于确定时间线访问时长阈值,获取用户访问Feed流的访问时间;若确定所述访问时间小于等于所述时间线访问时长阈值,则确定所述时间线为激活状态,发送所述待推送内容;若确定所述访问时间大于所述时间线访问时长阈值,则确定所述时间线为去激活状态,丢弃所述待推送内容。
本发明在拉取数据时,采用冷热结合,将热数据与时间线进行对应,提高热数据访问率,将冷数据存储在数据库中,需要才进行访问,实现了数据分类访问,进一步压缩数据访问时间。
基于上述任一实施例,所述更新模块54中的基于Feed辅助拉取机制,更新当前访问内容,包括:
待确定所述时间线处于激活状态之后,获取第一预设条数的时间线地址,基于所述时间线地址更新所述当前访问内容;若确定所述时间线处于临界到期范围内,则将所述时间线的时效延长预设天数;若确定所述时间线不存在,从全量表中获取第二预设条数的时间线地址,并确定所述时间线地址的时效为所述预设天数。
本发明通过用户访问刷新数据时,由时间线存续时间判断需要获取的feed Id,并判断获取数据的数据库来源类型,使用户更快地获取需要刷新的信息。
基于上述任一实施例,所述更新模块54中的基于Feed推拉结合处理机制,更新当前访问内容,包括:
若确定所述时间线地址超过时间线地址阈值,则从所述数据库中拉取所述时间线;基于所述当前访问内容的访问时间距离,确定所述数据库中的存储表类型,从对应的存储表中更新所述当前访问内容。
本发明在用户更新访问数据时,当访问的数量超过最大值时,通过访问数据库,进一步刷新内容,使得用户获取更新的推送内容。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行Feed流实现方法,该方法包括:基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的Feed流实现方法,该方法包括:基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的Feed流实现方法,该方法包括:基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Feed流实现方法,其特征在于,包括:
基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;
基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;
根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
2.根据权利要求1所述的Feed流实现方法,其特征在于,还包括:
基于Feed辅助拉取机制或Feed推拉结合处理机制,更新当前访问内容。
3.根据权利要求1所述的Feed流实现方法,其特征在于,基于Redis时间线缓存机制,在Feed流中存储待推送内容的时间线,包括:
确定向单个用户分配所述时间线,所述时间线用于反馈所述单个用户的访问动态;
将所述时间线存储至Redis内存数据库中。
4.根据权利要求1所述的Feed流实现方法,其特征在于,基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容,包括:
获取所述待推送内容的访问时间距离;
若确定所述访问时间距离在预设天数范围内,则将所述待推送内容存储至天数存储表中;
若确定所述访问时间距离在所述预设天数范围外,以及在预设月份范围内,则将所述待推送内容存储至月份存储表中;
若确定所述访问时间距离在所述预设月份范围外,则将所述待推送内容存储至全量存储表中。
5.根据权利要求1所述的Feed流实现方法,其特征在于,根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容,包括:
确定时间线访问时长阈值,获取用户访问Feed流的访问时间;
若确定所述访问时间小于等于所述时间线访问时长阈值,则确定所述时间线为激活状态,发送所述待推送内容;
若确定所述访问时间大于所述时间线访问时长阈值,则确定所述时间线为去激活状态,丢弃所述待推送内容。
6.根据权利要求2所述的Feed流实现方法,其特征在于,基于Feed辅助拉取机制,更新当前访问内容,包括:
待确定所述时间线处于激活状态之后,获取第一预设条数的时间线地址,基于所述时间线地址更新所述当前访问内容;
若确定所述时间线处于临界到期范围内,则将所述时间线的时效延长预设天数;
若确定所述时间线不存在,从全量表中获取第二预设条数的时间线地址,并确定所述时间线地址的时效为所述预设天数。
7.根据权利要求6所述的Feed流实现方法,其特征在于,基于Feed推拉结合处理机制,更新当前访问内容,包括:
若确定所述时间线地址超过时间线地址阈值,则从所述数据库中拉取所述时间线;
基于所述当前访问内容的访问时间距离,确定所述数据库中的存储表类型,从对应的存储表中更新所述当前访问内容。
8.一种Feed流实现系统,其特征在于,包括:
第一存储模块,用于基于远程字典服务Redis时间线缓存机制,在Feed流中存储待推送内容的时间线;
第二存储模块,用于基于Feed时间分区数据库存储机制在数据库中存储所述待推送内容;
发送模块,用于根据Feed推送机制和所述时间线,从所述数据库获取所述待推送内容,并发送所述待推送内容。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述Feed流实现方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述Feed流实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451015.4A CN115052040B (zh) | 2022-04-26 | 2022-04-26 | Feed流实现方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210451015.4A CN115052040B (zh) | 2022-04-26 | 2022-04-26 | Feed流实现方法、系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115052040A true CN115052040A (zh) | 2022-09-13 |
CN115052040B CN115052040B (zh) | 2024-04-19 |
Family
ID=83157205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210451015.4A Active CN115052040B (zh) | 2022-04-26 | 2022-04-26 | Feed流实现方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115052040B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014116949A (ja) * | 2013-12-24 | 2014-06-26 | Vodler Group Ab | プッシュ−プルベースのコンテンツ配信システム |
CN104281605A (zh) * | 2013-07-08 | 2015-01-14 | 北京齐尔布莱特科技有限公司 | 一种社交网站Feed流推送方法 |
CN105634981A (zh) * | 2014-10-30 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 内容缓存和传输方法及其系统 |
CN109271420A (zh) * | 2018-09-03 | 2019-01-25 | 平安医疗健康管理股份有限公司 | 信息推送方法、装置、计算机设备和存储介质 |
CN109478302A (zh) * | 2016-05-10 | 2019-03-15 | T·德兰 | 流时间线社交网络 |
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及系统 |
WO2020015047A1 (zh) * | 2018-07-16 | 2020-01-23 | 网宿科技股份有限公司 | 基于cdn应用的存储容量评估方法和装置 |
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN112306993A (zh) * | 2020-11-06 | 2021-02-02 | 平安科技(深圳)有限公司 | 基于Redis的数据读取方法、装置、设备及可读存储介质 |
CN112861016A (zh) * | 2020-12-11 | 2021-05-28 | 深圳市蟠桃树科技有限公司 | 一种健康社交平台Feed流系统的数据高并发处理方法 |
CN112887426A (zh) * | 2021-03-02 | 2021-06-01 | 北京百度网讯科技有限公司 | 信息流的推送方法、装置、电子设备以及存储介质 |
-
2022
- 2022-04-26 CN CN202210451015.4A patent/CN115052040B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281605A (zh) * | 2013-07-08 | 2015-01-14 | 北京齐尔布莱特科技有限公司 | 一种社交网站Feed流推送方法 |
JP2014116949A (ja) * | 2013-12-24 | 2014-06-26 | Vodler Group Ab | プッシュ−プルベースのコンテンツ配信システム |
CN105634981A (zh) * | 2014-10-30 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 内容缓存和传输方法及其系统 |
CN109478302A (zh) * | 2016-05-10 | 2019-03-15 | T·德兰 | 流时间线社交网络 |
WO2020015047A1 (zh) * | 2018-07-16 | 2020-01-23 | 网宿科技股份有限公司 | 基于cdn应用的存储容量评估方法和装置 |
CN109271420A (zh) * | 2018-09-03 | 2019-01-25 | 平安医疗健康管理股份有限公司 | 信息推送方法、装置、计算机设备和存储介质 |
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及系统 |
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN112306993A (zh) * | 2020-11-06 | 2021-02-02 | 平安科技(深圳)有限公司 | 基于Redis的数据读取方法、装置、设备及可读存储介质 |
CN112861016A (zh) * | 2020-12-11 | 2021-05-28 | 深圳市蟠桃树科技有限公司 | 一种健康社交平台Feed流系统的数据高并发处理方法 |
CN112887426A (zh) * | 2021-03-02 | 2021-06-01 | 北京百度网讯科技有限公司 | 信息流的推送方法、装置、电子设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
梅玉娜;冯东;李展;张宏伟;: "基于Redis的网络大学平台性能优化研究", 电力信息与通信技术, no. 12 * |
Also Published As
Publication number | Publication date |
---|---|
CN115052040B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579827B2 (en) | Event processing system to estimate unique user count | |
US11087372B2 (en) | Benefit allocation method, apparatus, and electronic device | |
CN108595207B (zh) | 一种灰度发布方法、规则引擎、系统、终端和存储介质 | |
CN104967861B (zh) | Cdn网络中的视频缓存系统及方法 | |
CN109299144B (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
CN103095743A (zh) | 一种灰度发布的处理方法及系统 | |
WO2023050712A1 (zh) | 一种深度学习业务的任务调度方法及相关装置 | |
CN102326153A (zh) | 以复制写入请求用于一致性存储器拷贝的方法及设备 | |
CN106777311B (zh) | 航班舱位状态缓存方法和系统 | |
CN106339331B (zh) | 一种基于用户活跃度的数据缓存层置换算法 | |
CN103186537A (zh) | 一种基于索引排序的数据读写方法及装置 | |
CN108984571B (zh) | 事务标识操作方法、系统和计算机可读存储介质 | |
CN101505311A (zh) | 一种基于社会化网络的信息传播方法及系统 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
CN110222073B (zh) | 一种数据查询的方法以及相关装置 | |
CN111858034A (zh) | 一种资源的管理方法、系统、设备以及介质 | |
CN105989065B (zh) | 一种闪拍数据处理方法及系统 | |
CN112286693A (zh) | 一种高并发场景下抢购活动的精细化限流处理方法、装置 | |
CN103634374A (zh) | 一种并发访问请求的处理方法及装置 | |
CN115052040B (zh) | Feed流实现方法、系统、电子设备和存储介质 | |
CN107659626B (zh) | 面向临时元数据的分离存储方法 | |
CN113476853A (zh) | 交互任务的数据处理方法、装置、电子设备、存储介质 | |
CN113938472A (zh) | 交互过程的会话数据的处理方法、系统、服务器群组及计算机可读存储介质 | |
CN113986962A (zh) | 排行榜生成方法、装置、设备及存储介质 | |
CN110119427B (zh) | 数据管理方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |