一种緩存管理方法及设备 技术领域
本发明涉及緩存技术领域, 具体涉及一种緩存管理方法及设备。
背景技术
在多媒体应用中, 使用緩存(Cache )可以将一些热点内容(如音视频) 緩存到距离用户比较近的代理服务器上, 这样做不仅可以减轻源服务器的负 载和减少骨干网带宽占用, 还可以加速对用户的响应, 从而提升用户体验。
在实际应用中, 代理服务器通常采用 Cache算法来识别热点内容。 一种 典型的 Cache算法是 LFU ( Least Frequently Used )算法, 一般地 LFU算法以 内容的点击次数作为热度值, 热度值越大, 说明该内容的热点越高; 反之, 则说明该内容的热点越低。
上述 LFU算法以内容的点击次数作为热度值, 使得过去被访问多次而现 在很少被访问的内容仍被推测为热点内容, 不能很好的权衡内容的价值。
发明内容
本发明实施例提供一种緩存管理方法及设备, 能够更加全面的权衡内容 的价值。
一种緩存管理方法, 包括:
接收客户端发送的携带有内容标识的内容请求消息;
从所述内容请求消息中获取所述内容标识, 并判断緩存硬盘中是否緩存 有与所述内容标识相对应的内容, 如果有, 则将所述内容发送给所述客户端; 更新所述内容的点击次数, 以获得所述内容的当前点击次数;
根据所述内容的近期访问信息计算所述内容的加热速度权重, 所述加热 速度权重用于表明所述内容近期的变热程度;
计算所述内容的加热速度权重和当前点击次数的乘积, 以获得所述内容 的热度值。
一种緩存管理设备, 包括:
接收单元, 用于接收客户端发送的携带有内容标识的内容请求消息;
获取单元, 用于从所述内容请求消息中获取所述内容标识; 第一判断单元, 用于判断緩存硬盘中是否緩存有与所述内容标识相对应 的内容;
发送单元, 用于在所述第一判断单元的判断结果为是时, 将所述内容发 送给所述客户端;
更新单元, 用于更新所述内容的点击次数, 以获得所述内容的当前点击 次数;
第一计算单元, 用于根据所述内容的近期访问信息计算所述内容的加热 速度权重, 所述加热速度权重用于表明所述内容近期的变热程度;
第二计算单元, 用于计算所述内容的加热速度权重和当前点击次数的乘 积, 以获得所述内容的热度值。
本发明实施例中, Cache 内容的热度值是通过计算 Cache 内容的加热速 度权重和当前点击次数的乘积来获得的, 而 Cache内容的加热速度权重用于 表明 Cache内容近期的变热程度。 也即是说, 本发明实施例在权衡 Cache内 容的价值时, 不仅考虑了 Cache内容的当前点击次数(即考虑了 Cache内容 的长期性), 还考虑了 Cache内容的加热速度权重(即考虑了 Cache内容的局 部性), 从而能够更加全面的权衡内容的价值, 有利于提高 Cache命中率。
附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例中所需 要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前 提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种緩存管理方法的流程图;
图 2是本发明实施例提供的另一种緩存管理方法的流程图;
图 3是本发明实施例提供的一种緩存管理设备的结构图;
图 4是本发明实施例提供的另一种緩存管理设备的结构图;
图 5是本发明实施例提供的又一种緩存管理设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而 不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明实施例提供一种緩存管理方法及设备,能够更加全面的权衡内容的 价值, 有利于提高 Cache命中率。 以下分别进行详细说明。
实施例一:
请参阅图 1 , 图 1是本发明实施例一提供的一种緩存管理方法的流程图。 其中,图 1所示的緩存管理方法可以应用于视频点播( Video On Demand, VOD ) 系统, 也可以应用于其他的系统, 本发明实施例不作限定。 如图 1所示, 该方 法可以包括以下步骤:
101、 接收客户端发送的携带有内容标识的内容请求消息。
本发明实施例中,可以由代理服务器来接收客户端发送的携带有内容标识 的内容请求消息。 其中, 内容标识用于区别内容, 不同内容的内容标识不同。
其中, 客户端可以是计算机、 移动电话、 个人数字助理(Personal Digital Assistant, PDA ) 以及膝上型电脑 (laptop computer )等, 本发明实施例不作 限定。
102、从内容请求消息中获取内容标识, 并判断 Cache硬盘中是否緩存有与 该内容标识相对应的内容, 如果有, 则将该内容发送给客户端。
本发明实施例中,代理服务器可以从内容请求消息中获取内容标识, 并判 断出 Cache硬盘中緩存有与该内容标识相对应的内容之后, 直接将该内容发送 给客户端。
103、 更新与该内容标识相对应的内容的点击次数, 以获得该内容的当前 点击次数。
本发明实施例中,代理服务器可以将与该内容标识相对应的内容的点击次 数加 1 , 以获得该内容的当前点击次数。 或者, 代理服务器更新与该内容标识 相对应的内容的点击次数时,也可以将与该内容标识相对应的内容的点击次数
加 n, n为大于 1的自然数, 本发明实施例不作限定。
104、 根据该内容的近期访问信息计算该内容的加热速度权重, 其中, 加 热速度权重用于表明该内容近期的变热程度。
本发明实施例中,代理服务器可以根据该内容的近期访问信息计算该内容 的加热速度权重。 其中, 对于上述步骤 104的具体实现, 本发明实施例后续将 通过具体的实施例来进行详细说明。
105、 计算该内容的加热速度权重和当前点击次数的乘积, 以获得内容的 热度值。
本发明实施例中,代理服务器可以计算该内容的加热速度权重和当前点击 次数的乘积, 以获得内容的热度值。
本发明实施例一中, Cache 内容的热度值是通过计算 Cache 内容的加热 速度权重和当前点击次数的乘积来获得的, 而 Cache 内容的加热速度权重用 于表明 Cache 内容近期的变热程度。 也即是说, 本发明实施例在权衡 Cache 内容的价值时, 不仅考虑了 Cache内容的当前点击次数(即 Cache内容的长 期性), 还考虑了 Cache内容的加热速度权重(即 Cache内容的局部性), 从 而能够更加全面的权衡内容的价值, 有利于提高 Cache命中率。
实施例二:
请参阅图 2, 图 2是本发明实施例二提供的一种緩存管理方法的流程图。 其中, 图 2所示的緩存管理方法也可以应用于 VOD系统, 也可以应用于其他 的系统, 本发明实施例不作限定。 在图 2所示的緩存管理方法中, Cache可以 包括 Cache硬盘和 Cache内存两部分。 其中, Cache硬盘用于緩存一些热度值 超过进入 Cache硬盘的阈值的热点内容, Cache硬盘中的热点内容可以较长时 间地为用户提供服务,而 Cache 内存用于緩存一些热度值没有超过进入 Cache 硬盘的阈值的内容; Cache 内存中的内容可以暂时为用户提供服务。 其中, Cache不仅记录 Cache硬盘里的热点内容的近期访问信息, 也记录 Cache内存 里的内容的近期访问信息。 如图 2所示, 该方法可以包括以下步骤:
201、 代理服务器接收客户端发送的携带有内容标识的内容请求消息。
202、 代理服务器从内容请求消息中获取内容标识。
203、 代理服务器判断 Cache硬盘中是否緩存有与该内容标识相对应的内 容, 如果有, 则执行步骤 204~207, 并结束本流程; 如果否, 则执行步骤 208。
204、 代理服务器将与该内容标识相对应的内容发送给客户端。
其中, 如果代理服务器判断出 Cache硬盘中緩存有与该内容标识相对应的 内容, 则说明 Cache命中, 代理服务器可以直接将与该内容标识相对应的内容 发送给客户端, 为客户端提供内容服务。
205、 代理服务器更新与该内容标识相对应的内容的点击次数, 以获得该 内容的当前点击次数。
206、代理服务器根据该内容的近期访问信息计算该内容的加热速度权重, 其中, 加热速度权重用于表明该内容近期的变热程度。
207、 代理服务器计算该内容的加热速度权重和当前点击次数的乘积, 以 获得内容的热度值。
208、 代理服务器判断是否记录有该内容的近期访问信息, 如果是, 则执 行步骤 205~207以及 209; 如果否, 则执行步骤 212~211 , 并结束本流程。 是, 执行步骤 210, 并结束本流程; 如果否, 则执行步骤 211 , 并结束本流程。
210、 代理服务器请求源服务器下发该内容, 并将源服务器下发的该内容 緩存到 Cache硬盘中, 以及将该内容发送给客户端。
实际应用中, 代理服务器通过骨干网连接源服务器, 因此, 代理服务器可 以通过骨干网请求源服务器下发该内容;以及通过骨干网接收源服务器下发的 该内容, 并緩存到 Cache硬盘中, 以及将该内容发送给客户端。
其中, 如果 Cache硬盘的空间足够, 则代理服务器可以直接将源服务器下 发的该内容緩存到 Cache硬盘中; 如果 Cache硬盘的空间不足, 则代理服务器可 以将源服务器下发的该内容替换 Cache硬盘中的热度值最小的热点内容。
211、 代理服务器请求源服务器下发该内容, 并将源服务器下发的该内容 緩存到緩存内存中, 以及将该内容发送给客户端。
212、 代理服务器请求记录该内容的近期访问信息。
本发明实施例二中, Cache 内容的热度值是通过计算 Cache 内容的加热
速度权重和当前点击次数的乘积来获得的, 而 Cache 内容的加热速度权重用 于表明 Cache 内容近期的变热程度。 也即是说, 本发明实施例在权衡 Cache 内容的价值时, 不仅考虑了 Cache内容的当前点击次数(即 Cache内容的长 期性), 还考虑了 Cache内容的加热速度权重(即 Cache内容的局部性), 从 而能够更加全面的权衡内容的价值, 有利于提高 Cache命中率。
如前面实施例一和实施例二所描述的,代理服务器可以根据客户端请求的 内容的近期访问信息计算该内容的加热速度权重,该加热速度权重用于表明该 服务器如何根据内容的近期访问信息计算该内容的加热速度权重。
实施例三:
本发明实施例三提供的一种根据内容的近期访问信息计算该内容的加热 速度权重的方法。 本发明实施例三提供的方法中, Cache可以记录每一个内容 (包括 Cache硬盘緩存的热点内容以及 Cache内存緩存的内容)在近期 N个周期 内的点击次数, N大于 1 ; 也即是说每一个内容的近期访问信息可以包括该内 容在近期 N个周期内的点击次数。
在此基础上,在需要计算某一个内容的加热速度权重时,代理服务器可以 先计算近期 N个周期内的 Cache中所有内容的平均点击次数, 并将该平均点击 次数作为基准点击次数; 然后再计算该内容在近期 N个周期内的点击次数相对 于该基准点击次数的点击次数差值; 以及根据该点击次数差值,从点击次数差 值与加热速度权重的对应关系中获取该内容的加热速度权重。
举例来说, 假如近期 N个周期内的 Cache中所有内容的平均点击次数为 100, 那么 Cache中每一个内容在近期 N个周期内的点击次数相对于 100的点击 次数差值与加热速度权重的对应关系可以 表 1所示。
从表 1可以看出, 如果某一个内容在近期 N个周期内的点击次数超过平均 点击次数, 则说明该内容近期 N个周期内比较热, 故应分配一个较大的加热速
度权重。 如果该内容没有进入 Cache硬盘, 则分配较大的加热速度权重后可以 加速其进入 Cache硬盘。 反之, 如果某一个内容在近期 N个周期内的点击次数 低于平均点击次数, 则说明该内容在近期 N个周期内很少被被点击, 该内容比 较冷, 应分配一个较小的加热速度权重, 加速其淘汰。
实施例四:
本发明实施例四提供的另一种根据内容的近期访问信息计算该内容的加 热速度权重的方法。本发明实施例四提供的方法中, Cache可以定义一个周期 T ( T的取值不能太大 ),并分别采用二维数组来记录每一个内容在前一周期的点 击次数和当前周期的点击次数。也即是说每一个内容的近期访问信息可以包括 该内容的当前周期的点击次数和前一周期的点击次数。针对每一个内容, Cache 还可以启动计时, 当计时 t到达周期 T时, Cache可以将原来的前一周期的点击 次数清零, 并开始记录当前周期的点击次数, 以及将原来的当前周期的点击次 数变为前一周期的点击次数。
在此基础上,在需要计算某一个内容的加热速度权重时,代理服务器可以 根据以下公式计算该内容的加热速度权重: 加热权重= 当前周期的点击次数
丄 *前一周期的点击次数
T 其中, Γ表示周期, t表示当前周期运行的时间, 取值为 (0, Γ]。 其中, 当前周期的点击数即是从本周期开始到 t时间的点击数。
其中, 如果当前周期的点击次数 > *前一周期的点击数(即前一周期运行 t时间的点击量) , 则说明该内容正在加速变热, 故应分配给一个较大的加热 速度权重;否则,则说明该内容正在变冷,故应分配一个较小的加热速度权重。
实施例五:
本发明实施例五提供的另一种根据内容的近期访问信息计算该内容的加 热速度权重的方法。本发明实施例五提供的方法中,每一个内容的近期访问信 息包括该内容的第一次被点击时间 Tf、 近期被访问时间 Tr以及被点击次数
Counter , 其中, Counter大于 1。
在此基础上,在需要计算某一个内容的加热速度权重时,代理服务器可以 先计算当前时间 Tc与 Tr的差值,以获得该内容从近期被访问时间到当前时间的 时间间隔 Tlast; 再根据公式(Tr-Tf ) I ( Counter- 1 )计算该内容过去被访问的 平均时间间隔 Tave; 当 Tlast <Tave时, 说明该内容的访问频率越来越高, 该内 容正处于热度上升阶段,应给该内容分配较大的加热速度权重, 因此代理服务 器可以根据公式 Tave/Tlast计算出该内容的加热速度权重。 当 Tlast> Tave时, 说 明该内容的访问频率越来越低, 该内容正处于热度下降阶段,应给该内容分配 较小的加热速度权重, 因此代理服务器可以根据公式 Tave/Tlast计算出该内容 的力口热速度权重。
实施例六:
请参阅图 3 , 图 3是本发明实施例提供的一种緩存管理设备的结构。本发明 实施例六提供的緩存管理设备既可以作为一个独立设备,也可以作为现有代理 服务器新增加的一部分, 用于实现 Cache管理。 如图 3所示, 该緩存管理设备可 以包括:
接收单元 301 , 用于接收客户端发送的携带有内容标识的内容请求消息。 获取单元 302 , 用于从上述的内容请求消息中获取内容标识。
第一判断单元 303 ,用于判断 Cache硬盘中是否緩存有与上述内容标识相对 应的内容。
发送单元 304, 用于在第一判断单元 303的判断结果为是时,将该内容发送 给客户端。
更新单元 305 , 用于更新该内容的点击次数, 以获得该内容的当前点击次 数。
第一计算单元 306, 用于根据该内容的近期访问信息计算该内容的加热速 度权重, 其中, 加热速度权重用于表明该内容近期的变热程度。
第二计算单元 307, 用于计算该内容的加热速度权重和当前点击次数的乘 积, 以获得该内容的热度值。
如图 3所示, 本发明实施例六提供的緩存管理设备还可以包括: 第二判断单元 308, 用于在第一判断单元 303的判断结果为否时, 判断是否 记录有该内容的近期访问信息, 如果有, 则通知更新单元 305执行更新该内容 的点击次数, 以获得该内容的当前点击次数; 以及通知第一计算单元 306执行 根据该内容的近期访问信息计算该内容的加热速度权重;以及通知第二计算单 元 307执行计算该内容的加热速度权重和当前点击次数的乘积, 以获得内容的 热度值。
第三判断单元 309,用于判断第二计算单元 307获得的热度值是否超过进入 Cache硬盘的阈值。
请求单元 310, 用于在第三判断单元 309的判断结果为是时,请求源服务器 下发该内容, 并将源服务器下发的该内容緩存到 Cache硬盘中。
相应地, 发送单元 304还用于将请求单元 310緩存到 Cache硬盘中的源服务 器下发的该内容发送给客户端。
一个实施例中, 请求单元 310还用于在第三判断单元的判断结果为否时, 请求源服务器下发该内容, 并将源服务器下发的该内容緩存到 Cache内存中; 相应地, 发送单元 304还用于将请求单元 310緩存到 Cache内存中的源服务器下 发的该内容发送给客户端。
如图 3所示, 本发明实施例六提供的緩存管理设备还可以包括:
记录单元 311 , 用于在第二判断单元 308的判断结果为否时, 记录该内容的 近期访问信息; 相应地,请求单元 310还用于在记录单元 311记录该内容的近期 访问信息之后, 请求源服务器下发内容, 并将源服务器下发的该内容緩存到 Cache内存中。
一个实施例中, 更新单元 305具体用于将该内容的点击次数加 1 , 以获得该 内容的当前点击次数。
一个实施例中,上述内容的近期访问信息包括该内容的当前周期的点击次 数和前一周期的点击次数。 相应地, 第一计算单元 306具体可以用于根据以下 公式计算该内容的加热速度权重:
加热权重= 当前周期的点击次数
丄 *前一周期的点击次数
T
其中, Γ表示周期, 表示当前周期运行的时间, 取值为 (0, τ]。
请参阅图 4, 图 4是本发明实施例六提供的另一种緩存管理设备的结构。其 中, 图 4所示的緩存管理设备是由图 3所示的緩存管理设备进行优化得到的。在 图 4所示的緩存管理设备中, 上述内容的近期访问信息包括该内容在近期 Ν个 周期内的点击次数, 其中, Ν大于 1。 如图 4所示, 第一计算单元 306可以包括: 第一模块 3061 , 用于计算近期 Ν个周期内的 Cache硬盘中所有内容的平均 点击次数, 将该平均点击次数作为基准点击次数;
第二模块 3062, 用于计算该内容在近期 N个周期内的点击次数相对于基准 点击次数的点击次数差值;
第三模块 3063 ,用于根据该点击次数差值,从点击次数差值与加热速度权 重的对应关系中获取该内容的加热速度权重。
一个实施例中, 更新单元 305具体用于将该内容的点击次数加 1 , , 以获得 该内容的最近 N个周期最新的点击次数; N大于 1。
请参阅图 5 , 图 5是本发明实施例六提供的又一种緩存管理设备的结构。其 中, 图 5所示的緩存管理设备是由图 3所示的緩存管理设备进行优化得到的。在 图 5所示的緩存管理设备中, 上述内容的近期访问信息包括该内容的第一次被 点击时间 Tf、 近期被访问时间 Tr以及被点击次数 Counter , Counter大于 1。 如图 5所示, 第一计算单元 306可以包括:
第四模块 3064, 用于计算当前时间 Tc与 Tr的差值, 以获得该内容从近期被 访问时间到当前时间的时间间隔 Tlast;
第五模块 3065 , 用于根据公式(Tr-Tf ) I ( Counter- 1 )计算该内容过去被 访问的平均时间间隔 Tave;
第六模块 3066, 用于在 Tlast <Tave时,根据公式 Tave/Tlast计算该内容的加 热速度权重; 或者用于在 Tlast> Tave,时 根据公式 Tave/Tlast计算该内容的加热 速度权重。
本发明实施例六提供的緩存管理设备中, Cache内容的热度值是通过计算 Cache内容的加热速度权重和当前点击次数的乘积来获得的,而 Cache内容的加 热速度权重用于表明 Cache内容近期的变热程度。 也即是说, 本发明实施例六 提供的緩存管理设备在权衡 Cache内容的价值时,不仅考虑了 Cache内容的当前 点击次数(即考虑了 Cache内容的长期性), 还考虑了 Cache内容的加热速度权 重(即考虑了 Cache内容的局部性), 从而能够更加全面的权衡内容的价值, 有 利于提高 Cache命中率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可 读存储介质中, 存储介质可以包括: 闪存盘、 只读存储器 ( Read-Only Memory , ROM ) 、 随机存取器 ( Random Access Memory, RAM ) 、 磁盘或 光盘等。
以上对本发明实施例所提供的緩存管理方法及设备进行了详细介绍, 本 说明只是用于帮助理解本发明的方法及其核心思想; 同时, 对于本领域的一 般技术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变 之处, 综上所述, 本说明书内容不应理解为对本发明的限制。