一种基于播放记录的缓存方法及装置与流程

文档序号:28917869发布日期:2022-02-16 11:55阅读:145来源:国知局
一种基于播放记录的缓存方法及装置与流程

1.本发明涉及多媒体缓存技术领域,尤其涉及一种基于播放记录的缓存方法及装置。


背景技术:

2.在视频网站中,用户观看视频时会生成相应的视频播放进度,视频网站会对这些视频播放进度进行记录,以便用户断点续播。
3.目前将所有的视频播放记录以一个列表的形式存放在云端缓存中。在以一个列表存储所有的视频播放记录的情况下,当需要对某一视频播放记录进行处理时(新增、修改、删除或定位等处理),均需要从云端缓存中读取存储视频播放记录的列表,再遍历整个列表才能找到需要处理的视频播放记录,前述存储视频播放记录的方式会在处理视频播放记录时产生较高的资源开销且时间复杂度较高。


技术实现要素:

4.有鉴于此,本发明实施例提供一种基于播放记录的缓存方法及装置,以解决现有的存储视频播放记录的方式会在处理视频播放记录时产生较高的资源开销且时间复杂度较高的问题。
5.为实现上述目的,本发明实施例提供如下技术方案:本发明实施例第一方面公开一种基于播放记录的缓存方法,所述方法包括:当接收到至少携带第一视频标识的第一播放记录时,判断所述第一播放记录中是否存在第一专辑标识;若不存在所述第一专辑标识,执行更新步骤;若存在所述第一专辑标识,判断第二字典中是否存在所述第一专辑标识对应的第二视频标识,所述第二字典包含具有对应关系的视频标识和专辑标识;若所述第二字典中存在所述第二视频标识,从播放列表、第一字典和所述第二字典中删除与所述第二视频标识相关的内容,所述播放列表包含多个视频标识,所述第一字典包含具有对应关系的视频标识和播放记录;将所述第一专辑标识和所述第一视频标识存储至所述第二字典,并执行所述更新步骤;若所述第二字典中不存在所述第二视频标识,将所述第一视频标识与所述第一专辑标识存储至所述第二字典,并执行所述更新步骤;所述更新步骤包括:根据所述第一视频标识更新所述播放列表,及根据所述第一视频标识与第一播放记录更新所述第一字典。
6.优选的,所述根据所述第一视频标识更新所述播放列表,包括:判断所述播放列表中是否存在所述第一视频标识;
若所述播放列表中存在所述第一视频标识,利用所述第一播放记录的上报时间,调整所述第一视频标识在所述播放列表中的存储位置;若所述播放列表中不存在所述第一视频标识,根据所述第一播放记录的上报时间,将所述第一视频标识存储到所述播放列表中。
7.优选的,所述根据所述第一视频标识与第一播放记录更新所述第一字典,包括:判断所述第一字典中是否存在所述第一视频标识;若所述第一字典中存在所述第一视频标识,将所述第一播放记录替换所述第一字典中与所述第一视频标识对应的播放记录;若所述第一字典中不存在所述第一视频标识,将所述第一视频标识与所述第一播放记录存储至所述第一字典。
8.优选的,所述方法还包括:当接收到查找第三视频标识对应的播放记录的查找指令时,判断所述第一字典中是否存在所述第三视频标识,所述第三视频标识由所述查找指令携带,或者,所述第三视频标识由根据所述查找指令所携带的第二专辑标识从所述第二字典中查询得到;若存在所述第三视频标识,从所述第一字典中获取与所述第三视频标识对应的播放记录。
9.优选的,所述方法还包括:接收到删除第四视频标识对应的播放记录的删除指令时,查找所述播放列表中是否存在所述第四视频标识;当所述播放列表中存在所述第四视频标识时,从所述播放列表中删除所述第四视频标识;查找所述第一字典中是否存在所述第四视频标识;当所述第一字典中存在所述第四视频标识时,从所述第一字典中删除所述第四视频标识和与其对应的播放记录;查找所述第二字典中是否存在所述第四视频标识;当所述第二字典中存在所述第四视频标识时,从所述第二字典中删除所述第四视频标识和与其对应的专辑标识。
10.优选的,所述从播放列表、第一字典和所述第二字典中删除与所述第二视频标识相关的内容,包括:从播放列表中删除所述第二视频标识,及从第一字典中删除所述第二视频标识及所述第二视频标识对应的播放记录,并从所述第二字典中删除所述第二视频标识和第一专辑标识。
11.本发明实施例第二方面公开一种基于播放记录的缓存装置,所述装置包括:第一判断单元,用于当接收到至少携带第一视频标识的第一播放记录时,判断所述第一播放记录中是否存在第一专辑标识;若不存在所述第一专辑标识,执行更新单元;若存在所述第一专辑标识,执行第二判断单元;所述第二判断单元,用于判断第二字典中是否存在所述第一专辑标识对应的第二视频标识,所述第二字典包含具有对应关系的视频标识和专辑标识;若所述第二字典中存在所述第二视频标识,执行处理单元;若所述第二字典中不存在所述第二视频标识,执行存
储单元;所述处理单元,用于从播放列表、第一字典和所述第二字典中删除与所述第二视频标识相关的内容,所述播放列表包含多个视频标识,所述第一字典包含具有对应关系的视频标识和播放记录;将所述第一专辑标识和所述第一视频标识存储至所述第二字典,并执行所述更新单元;所述存储单元,用于将所述第一视频标识与所述第一专辑标识存储至所述第二字典,并执行所述更新单元;所述更新单元,用于根据所述第一视频标识更新所述播放列表,及根据所述第一视频标识与第一播放记录更新所述第一字典。
12.优选的,所述更新单元包括:第一更新模块,用于判断所述播放列表中是否存在所述第一视频标识;若所述播放列表中存在所述第一视频标识,利用所述第一播放记录的上报时间,调整所述第一视频标识在所述播放列表中的存储位置;若所述播放列表中不存在所述第一视频标识,根据所述第一播放记录的上报时间,将所述第一视频标识存储到所述播放列表中。
13.优选的,所述更新单元包括:第二更新模块,用于判断所述第一字典中是否存在所述第一视频标识;若所述第一字典中存在所述第一视频标识,将所述第一播放记录替换所述第一字典中与所述第一视频标识对应的播放记录;若所述第一字典中不存在所述第一视频标识,将所述第一视频标识与所述第一播放记录存储至所述第一字典。
14.优选的,所述装置还包括:查找单元,用于当接收到查找第三视频标识对应的播放记录的查找指令时,判断所述第一字典中是否存在所述第三视频标识,所述第三视频标识由所述查找指令携带,或者,所述第三视频标识由根据所述查找指令所携带的第二专辑标识从所述第二字典中查询得到;若存在所述第三视频标识,从所述第一字典中获取与所述第三视频标识对应的播放记录。
15.基于上述本发明实施例提供的一种基于播放记录的缓存方法及装置,该方法为:当接收到至少携带第一视频标识的第一播放记录时,判断第一播放记录中是否存在第一专辑标识;若不存在第一专辑标识,更新播放列表和第一字典;若存在第一专辑标识,判断第二字典中是否存在与第一专辑标识对应的第二视频标识;若存在第二视频标识,从播放列表、第一字典和第二字典中删除与第二视频标识相关的内容;更新第二字典、播放列表和第一字典;若第二字典中不存在第二视频标识,更新第二字典、播放列表和第一字典。利用播放列表、第一字典和第二字典三个部分存储播放记录,采用此种缓存方式,在对某一播放记录进行处理时,可直接从播放列表和/或字典中获取所需的数据,有效提升了对播放记录进行处理的效率,降低了时间复杂度,减少了占用的资源。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
17.图1为本发明实施例提供的一种基于播放记录的缓存方法的流程图;图2为本发明实施例提供的第二字典中视频标识和专辑标识的关系示意图;图3为本发明实施例提供的第一字典中视频标识和播放记录的关系示意图;图4为本发明实施例提供的播放列表中视频标识的存储形式的示意图;图5为本发明实施例提供的根据第一视频标识更新播放列表的流程图;图6为本发明实施例提供的根据第一视频标识和第一播放记录更新第一字典的流程图;图7为本发明实施例提供的一种基于播放记录的缓存装置的结构框图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
20.由背景技术可知,现有的存储视频播放记录的方式,当需要对某一视频播放记录进行处理时(新增、修改、删除或定位等处理),均需要从云端缓存中读取存储视频播放记录的列表,再遍历整个列表才能找到需要处理的视频播放记录,这种方式在处理视频播放记录时会产生较高的资源开销且时间复杂度较高。
21.因此,本发明实施例提供一种基于播放记录的缓存方法及装置,在接收到携带了第一视频标识的第一播放记录时,查找第一播放记录中是否有第一专辑标识;当第一播放记录中有第一专辑标识时,查找第二字典中是否有第一专辑标识对应的第二视频标识,若第二字典中有第一专辑标识对应的第二视频标识,删除播放列表、第一字典和第二字典中与第二视频标识相关的内容,再根据第一视频标识更新播放列表、第一字典和第二字典;若第二字典中没有第一专辑标识对应的第二视频标识,直接根据第一视频标识更新播放列表、第一字典和第二字典;当第一播放记录中没有第一专辑标识时,同样直接根据第一视频标识更新播放列表、第一字典和第二字典。这种将播放记录存储在播放列表、第一字典和第二字典中的方式,在需要对播放记录进行处理时,可以快速从播放列表和/或字典中查询到需要的数据,时间复杂度为o(1)级别,而不用遍历整个播放列表,因此可以有效提高对播放记录进行处理的效率,使得处理播放记录时所需要占用的资源较少,同时也有效降低了时间复杂度。
22.参见图1,示出了本发明实施例提供的一种基于播放记录的缓存方法的流程图,该缓存方法包括:步骤s101:当接收到至少携带第一视频标识的第一播放记录时,判断第一播放记
录中是否存在第一专辑标识。若第一播放记录中存在第一专辑标识,执行步骤s102;若第一播放记录中不存在第一专辑标识,执行步骤s105。
23.可以理解的是,用户在观看视频时,视频网站会根据预先设定的时间(如10秒)周期性触发上报播放记录,即对用户观看视频的进度进行记录。当接收到至少携带第一视频标识的第一播放记录时,指示需要将第一播放记录中的内容进行存储。
24.需要说明的是,根据播放记录的特点,同一个视频或同一个专辑中仅保留最新的一条播放记录,因此在接收到第一播放记录时需要判断第一播放记录对应的视频是否属于某一个专辑,由此查询视频网站是否已经存储了,与第一播放记录对应的视频属于同一个专辑的其他视频的播放记录。
25.可以理解的是,播放记录中携带的内容可以是客户端和服务端约定的内容(如用户标识id、视频标识vid、专辑标识aid、观看时长viewtime和观看至多少秒等)。
26.步骤s102:判断第二字典中是否存在第一专辑标识对应的第二视频标识。若第二字典中存在第二视频标识,执行步骤s103;若第二字典中不存在第二视频标识,执行步骤s104。
27.需要说明的是,第二字典用于存储具有对应关系的视频标识和专辑标识,比如:视频a属于专辑a,视频a的视频标识为a,专辑a的专辑标识为a,将视频标识a和专辑标识a存储至第二字典。第二字典在存储数据时可以通过哈希算法存储数据。第二字典可以采用redis数据库的map结构进行构建,在map结构中,存储具有对应关系的字段key和值value,其中字段key中存储的值不允许重复,值value中存储的值可以重复。其中专辑标识为字段key;视频标识为值value。在第二字典中,一个专辑标识对应一个视频标识,第二字典中视频标识和专辑标识的关系,参见图2所示,需要说明的是,图2所给出的内容仅为视频标识vid和专辑标识aid之间的关系的示例,图2中不同的${aid}均指代不同的专辑标识,不同的${vid}均指代不同的视频标识。
28.在具体实现步骤s102的过程中,当第一播放记录中存在第一专辑标识时,判断第二字典中是否存在第二视频标识,即判断第二字典中是否存在与第一播放记录对应的视频,属于同一个专辑的其他视频对应的视频标识。当第二字典中存在第二视频标识时,执行步骤s103;当第二字典中不存在第二视频标识时,执行步骤s104。
29.可以理解的是,当第二字典中存在第二视频标识时,指示第二字典中存在与第一播放记录对应的视频,属于同一个专辑的其他视频对应的视频标识;当第二字典中中不存在第二视频标识时,指示第二字典中还未存储与第一播放记录对应的视频,属于同一个专辑的其他视频对应的视频标识。
30.步骤s103:从播放列表、第一字典和第二字典中删除与第二视频标识相关的内容,执行步骤s104。
31.需要说明的是,第一字典存储具有对应关系的视频标识和播放记录,例如:视频标识b属于播放记录b,将视频标识b和播放记录b存储至第一字典。第一字典在存储数据时可以通过哈希算法存储数据。第一字典也可以采用redis数据库的map结构进行构建,因此,在第一字典中含有具有对应关系的视频标识与该视频标识对应的播放记录。其中,视频标识为字段key,视频标识对应的播放记录为值value。在第一字典中,一个视频标识对应一个播放记录,第一字典中视频标识和播放记录的关系,参见图3所示,需要说明的是,图3所给出
的内容仅为视频标识vid和播放记录之间的关系的示例,图3中不同的${vid}均指代不同的视频标识,每一视频标识对应一播放记录(包含了vid、aid、point和viewtime等)。
32.可以理解的是,播放列表用于存储用户观看过的视频标识,可以采用redis数据库的zset形式进行构建,zset是一个不允许元素重复的集合,在集合中每个元素关联一个double类型的分数,通过分数为集合中的元素按从小到大的顺序进行排序。
33.因此,播放列表中含有多个视频标识,将这些视频标识对应的上报时间作为分数,将这些视频标识根据其对应的上报时间,按照从小到大的顺序进行排序。播放列表中视频标识的存储形式参见图4所示,需要说明的是,图4所给出的内容仅为视频标识vid的存储示例,图4中不同的${vid}均指代不同的视频标识。
34.在具体实现步骤s103的过程中,当第二字典中存在第二视频标识时,根据仅保留最新一条播放记录的特点,需要从播放列表、第一字典和第二字典中删除与第二视频标识相关的内容,再执行步骤s104。
35.可以理解的是,从播放记录中删除与第二视频标识相关的内容为:从播放列表中删除第二视频标识;从第一字典中删除与第二视频标识相关的内容为:从第一字典中删除第二视频标识及第二视频标识对应的播放记录;从第二字典中删除与第二视频标识相关的内容为:从第二字典中删除第二视频标识和第一专辑标识。
36.步骤s104:将第一专辑标识和第一视频标识存储至第二字典。
37.在具体实现步骤s104的过程中,当从播放列表、第一字典和第二字典中删除与第二视频标识相关的内容之后,或,第二字典中不存在第二视频标识时,将具有对应关系的第一专辑标识和第一视频标识存储至第二字典。
38.步骤s105:根据第一视频标识更新播放列表,及根据第一视频标识与第一播放记录更新第一字典。
39.在具体实现步骤s105的过程中,当第一播放记录中不存在第一专辑标识时,或,将第一专辑标识和第一视频标识存储至第二字典之后,根据第一视频标识对应的上报时间更新第一视频标识在播放列表中的位置,并根据第一视频标识和第一播放记录更新第一字典。
40.需要说明的是,根据第一视频标识更新播放列表的具体实现过程详见以下本发明实施例图5中的内容;根据第一视频标识和第一播放记录更新第一字典的具体实现过程详见以下本发明实施例图6中的内容。
41.以上各个步骤的内容,是关于将播放记录的各个内容存储到播放列表、第一字典和第二字典的相关内容;采用此种方式对播放记录进行存储之后,在需要查找某一播放记录或删除某一播放记录时,可从播放列表、第一字典和第二字典中进行查找或删除,详见以下内容。
42.可以理解的是,查找第三视频标识对应的播放记录的查找指令可以是由用户触发,例如用户进入某一个专辑(如某一个剧集)界面时,可以向用户展示上次观看的视频(如剧集的集数)及观看进度。
43.优选的,从第一字典中查找第三视频标识对应的播放记录的过程为:需要说明的是,用户在查找某一视频标识对应的播放记录时,存在以下两种查找情况,第一种查找情况为,用户直接点击该视频,此时查找指令中携带该视频对应的第三视
频标识;第二种查找情况为,用户点击该视频对应的专辑(或者说剧集),此时查找指令中携带该视频对应的第二专辑标识;针对第一种查找情况,当查找指令中携带用户点击的视频对应的第三视频标识时,判断第一字典中是否存在第三视频标识。若第一字典中存在第三视频标识,从第一字典中获取与第三视频标识对应的播放记录;若第一字典中不存在第三视频标识,则无操作。
44.针对第二种查找情况,当查找指令中携带视频对应的第二专辑标识时,从第二字典中获取与第二专辑标识对应的第三视频标识,再查找第一字典中是否存在第三视频标识。若第一字典中存在第三视频标识,从第一字典中获取与第三视频标识对应的播放记录;若第一字典中不存在第三视频标识,则无操作。
45.可以理解的是,第一字典在存储数据时采用哈希算法进行存储,因此,在查询第一字典中是否存在第三视频标识时也可以通过哈希算法进行查找,不需要遍历整个第一字典。
46.需要说明的是,删除第四视频标识对应的播放记录的删除指令可以是由用户触发,也可以是程序触发(例如视频或专辑已失效、下架或版权到期等原因)。
47.优选的,从播放列表、第一字典和第二字典中删除第四视频标识对应的播放记录的过程为:当接收到删除第四视频标识对应的播放记录的删除指令时,查找播放列表中是否存在第四视频标识。若播放列表中存在第四视频标识,从播放列表中删除第四视频标识;若播放列表中不存在第四视频标识,查找第一字典中是否存在第四视频标识。
48.当播放列表中不存在第四视频标识时,或,从播放列表中删除第四视频标识之后,查找第一字典中是否存在第四视频标识。当第一字典中存在第四视频标识时,从第一字典中删除第四视频标识和与其对应的播放记录;当第一字典中不存在第四视频标识时,查找第二字典中是否存在第四视频标识。
49.当第一字典中不存在第四视频标识时,或,从第一字典中删除第四视频标识和与其对应的播放记录之后,查找第二字典中是否存在第四视频标识。若第二字典中存在第四视频标识,从第二字典中删除第四视频标识和与其对应的专辑标识;若第二字典中不存在第四视频标识,则无操作。
50.需要说明的是,本发明实施例中提供的查找播放列表、第一字典和第二字典中与第四视频标识相关的内容并删除的顺序只用于举例说明,处理顺序也可以是先处理第一字典,其次是处理播放列表,最后是处理第二字典,处理的先后顺序并不做具体限制,可由实际情况进行设置。
51.在本发明实施例中,应用数据库redis的map结构,构建了第一字典和第二字典,以及构建了zset集合特性的播放列表,使得存储播放记录更加有条理性。在需要对某一播放记录进行存查找或删除时,可以根据哈希算法直接定位到需要的数据,时间复杂度为o(1)级别,操作更加便捷和快速,提高了处理播放记录的效率。
52.上述本发明涉及的根据第一视频标识更新播放列表的具体实现过程,参见图5,示出了本发明实施例提供的根据第一视频标识更新播放列表的具体实现过程,包括以下步骤:步骤s501:判断播放列表中是否存在第一视频标识。若播放列表中存在第一视频
标识,执行步骤s502;若播放列表中不存在第一视频标识,执行步骤s503。
53.在具体实现步骤s501的过程中,判断播放列表中是否存在第一视频标识,当播放列表中存在第一视频标识,指示用户曾经观看过第一视频标识对应的视频,由于第一播放记录为新上传的播放记录,此时需要调整第一视频标识在播放列表中的存储位置,执行步骤s502;当播放列表中不存在第一视频标识时,执行步骤s503。
54.步骤s502:利用第一播放记录的上报时间,调整第一视频标识在播放列表中的存储位置。
55.在具体实现步骤s502的过程中,当播放列表中存在第一视频标识时,利用第一播放记录的上报时间,替换播放列表中第一视频标识对应的原上报时间,根据第一播放记录的上报时间确定第一视频标识在播放列表中的新的存储位置,将第一视频标识移动至该新的存储位置。
56.可以理解的是,由于播放列表采用数据库redis的zset结构,可以依据第一播放记录的上报时间自动维护播放列表中第一视频标识的位置。
57.例如:播放列表中存储有:视频标识a,对应上报时间为1分30秒;视频标识b,对应上报时间为2分30秒;视频标识c,对应上报时间为3分30秒。现有新上传的第一播放记录,携带视频标识a,对应的上报时间为5分30秒。
58.此时需要将播放列表中视频标识a,对应的上报时间由1分30秒更改为5分30秒,并调整视频标识a在播放列表中的位置,调整后播放列表中的数据为:视频标识b,对应上报时间为2分30秒;视频标识c,对应上报时间为3分30秒;视频标识a,对应上报时间为5分30秒。
59.步骤s503:根据第一播放记录的上报时间,将第一视频标识存储到播放列表中。
60.在具体实现步骤s503的过程中,当播放列表中不存在第一视频标识时,根据第一播放记录的上报时间确定第一视频标识在播放列表中的存储位置,并将第一视频标识存储至该存储位置。
61.例如:播放列表中存储有:视频标识a,对应上报时间为1分30秒;视频标识b,对应上报时间为2分30秒;视频标识c,对应上报时间为3分30秒。现有新上传的第一播放记录,携带视频标识d,对应的上报时间为4分50秒。
62.此时需要依据视频标识d对应的上报时间,将视频标识d存储至播放列表,在存储完成后播放列表中的数据为:视频标识a,对应上报时间为1分30秒;视频标识b,对应上报时间为2分30秒;视频标识c,对应上报时间为3分30秒;视频标识d,对应的上报时间为4分50秒。
63.在本发明实施例中,根据第一视频标识,利用第一播放记录的上报时间对播放列表进行更新。当播放列表中存在第一视频标识时,利用第一播放记录的上报时间替换播放列表中原来第一视频标识对应的上报时间,并调整第一视频标识在播放列表中的存储位置;当播放列表中不存在第一视频标识时,根据第一播放记录的上报时间确定第一视频标识在播放列表中的存储位置,并将第一视频标识存储至该存储位置。基于数据库redis的zset结构的特点,实现自动维护播放列表中视频标识的顺序性,相较于原来需要手动维护播放列表中视频标识的顺序的方法,有效的降低了维护成本和数据的错误率。
64.上述本发明涉及的根据第一视频标识和第一播放记录更新第一字典的具体实现过程,参见图6,示出了本发明实施例提供的根据第一视频标识和第一播放记录更新第一字
典的具体实现过程,包括以下步骤:步骤s601:判断第一字典中是否存在第一视频标识。若第一字典中存在第一视频标识,步骤s602;若第一字典中不存在第一视频标识,执行步骤s603。
65.在具体实现步骤s601的过程中,判断第一字典中是否存在第一视频标识,当第一字典中存在第一视频标识时,需要更新第一字典中与第一视频对应的播放记录,执行步骤s602;当第一字典中不存在第一视频标识时,执行步骤s603。
66.步骤s602:将第一播放记录替换第一字典中与第一视频标识对应的播放记录。
67.在具体实现步骤s602的过程中,当第一字典中存在第一视频标识时,指示存在与第一视频标识对应的原播放记录,利用第一播放记录替换第一字典中的原播放记录,即将第一播放记录覆盖第一字典中与第一视频标识对应的原播放记录。
68.步骤s603:将第一视频标识与第一播放记录存储至第一字典。
69.在具体实现步骤s603的过程中,当第一字典中不存在第一视频标识时,将具有对应关系的第一视频标识与第一播放记录存储至第一字典。
70.在本发明实施例中,利用第一视频标识和第一播放记录更新第一字典。第一字典采用了数据库redis的map结构,在查找第一字典中是否存在第一视频标识时不需要遍历整个第一字典,可以直接根据哈希算法查找第一字典中是否存在第一视频标识,从而进行后续操作,时间复杂度为o(1)级别,相较于原来一个播放列表存储所有播放记录的存储方式,此种方式有效地降低了时间复杂度,加快了处理播放记录的速度。
71.与上述本发明实施例提供的一种基于播放记录的缓存方法相对应,参见图7,本发明实施例还提供了一种基于播放记录的缓存装置的结构框图,该缓存装置包括:第一判断单元701、第二判断单元702、处理单元703、存储单元704和更新单元705:第一判断单元701,用于当接收到至少携带第一视频标识的第一播放记录时,判断第一播放记录中是否存在第一专辑标识;若不存在第一专辑标识,执行更新单元705;若存在第一专辑标识,执行第二判断单元702。
72.第二判断单元702,用于判断第二字典中是否存在第一专辑标识对应的第二视频标识,第二字典包含具有对应关系的视频标识和专辑标识;若第二字典中存在第二视频标识,执行处理单元703;若第二字典中不存在第二视频标识,执行存储单元704。
73.处理单元703,用于从播放列表、第一字典和第二字典中删除与第二视频标识相关的内容,播放列表包含多个视频标识,第一字典包含具有对应关系的视频标识和播放记录;将第一专辑标识和第一视频标识存储至第二字典,并执行更新单元705。
74.存储单元704,用于将第一视频标识与第一专辑标识存储至第二字典,并执行更新单元705。
75.更新单元705,用于根据第一视频标识更新播放列表,及根据第一视频标识与第一播放记录更新第一字典。
76.在本发明实施例中,利用播放列表、第一字典和第二字典三个部分对播放记录进行存储处理,采用此种存储方式,在需要对播放记录进行处理时,可以直接查询到需要的数据,不需要遍历整个第一字典和第二字典,使得处理播放记录的时间复杂度降为o(1)级别,提高了处理播放记录的效率,同时也减少了处理播放记录时需要占用的资源。
77.优选的,结合图7示出的内容,更新单元705包括:第一更新模块、第二更新模块,各
模块的执行原理为:第一更新模块,用于判断播放列表中是否存在第一视频标识;若播放列表中存在第一视频标识,利用第一播放记录的上报时间,调整第一视频标识在播放列表中的存储位置;若播放列表中不存在第一视频标识,根据第一播放记录的上报时间,将第一视频标识存储到播放列表中。
78.第二更新模块,用于判断第一字典中是否存在第一视频标识;若第一字典中存在第一视频标识,将第一播放记录替换第一字典中与第一视频标识对应的播放记录;若第一字典中不存在第一视频标识,将第一视频标识与第一播放记录存储至第一字典。
79.优选的,结合图7示出的内容,该缓存装置还包括:查找单元和删除单元:查找单元,用于当接收到查找第三视频标识对应的播放记录的查找指令时,判断第一字典中是否存在第三视频标识,第三视频标识由查找指令携带,或者,第三视频标识由根据查找指令所携带的第二专辑标识从第二字典中查询得到;若存在第三视频标识,从第一字典中获取与第三视频标识对应的播放记录。
80.删除单元,用于接收到删除第四视频标识对应的播放记录的删除指令时,查找播放列表中是否存在第四视频标识;当播放列表中存在第四视频标识时,从播放列表中删除第四视频标识;查找第一字典中是否存在第四视频标识;当第一字典中存在第四视频标识时,从第一字典中删除第四视频标识和与其对应的播放记录;查找第二字典中是否存在第四视频标识;当第二字典中存在第四视频标识时,从第二字典中删除第四视频标识和与其对应的专辑标识。
81.综上所述,本发明实施例提供了一种基于播放记录的缓存方法和装置,该方法为:当接收到至少携带第一视频标识的第一播放记录时,查找第一播放记录中是否存在第一专辑标识。当不存在第一专辑标识时,利用第一播放记录中的内容更新播放列表和第一字典;当存在第一专辑标识时,查找第二字典中是否存在与第一专辑标识对应的第二视频标识。当存在第二视频标识时,删除播放列表、第一字典和第二字典中与第二视频标识相关的内容,再根据第一播放记录更新播放列表、第一字典和第二字典;当不存在第二视频标识时,根据第一播放记录更新播放列表、第一字典和第二字典。当接收到查找第三视频标识的查找指令时,可以从第一字典中查找与第三视频标识相关的内容;当接收到删除与第四视频标识对应的删除内容时,依次查找播放列表、第一字典和第二字典中与第四视频标识对应的内容并进行删除。利用播放列表、第一字典和第二字典,实现了对播放记录增加、删除和查找等操作时,可以快速定位到需要的数据,更加简洁和快速,提高处理播放记录的效率,并降低处理播放记录的时间复杂度,达到了o(1)级别。
82.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
83.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
84.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1