本申请属于互联网技术领域,具体涉及一种收藏夹存储访问方法,及其相应的装置、电子设备、非易失性存储介质。
背景技术:
在互联网电商领域,常需根据用户喜好建立用户在指定店铺的收藏夹,用户在浏览商品过程中根据个人喜好将商品添加到收藏夹,再根据收藏夹内商品价格追踪,最终形成从收藏夹到购买的转化。
针对用户的收藏夹,系统需要维护收藏夹数据,还需要根据商品的最新库存情况维护更新每个用户收藏夹的商品最新状态,商品状态一般包括但不限于:商品正常、商品售罄和商品失效。商品可以从正常状态变成失效状态和售罄状态,也可以从售罄状态由系统通知商家补货,补完货之后从售罄状态变成正常状态。当用户在进入商品详情页浏览商品的时候系统需要判断当前浏览用户是否已经收藏正在浏览的商品,以及该商品处于何种状态。
不同用户都可以根据商品的sku(用于描述一种商品)和spu(用于描述商品的一个具体款式)维度将商品加入到收藏夹,这种情况下通常需要维护所有用户和商品的收藏关系。若一个用户收藏店铺上的无限商品,导致数据量暴增,系统便需要设法维护商品和用户之间的关系。一个店铺的商品也可能被上万个用户收藏,这种情况下,当后台系统收到商品状态变更的消息的时候就需要去寻找这些用户,及时更新商品状态为sku或spu的最新状态。对于电商平台而言,存在海量的店铺和海量的潜在消费用户,收藏夹相关联的商品和用户之间的关系数据如何合理维护,足以影响到平台的算力资源的高效率运用。
进一步,在用户进入商品详情页或者商品列表页时,都可能要请求判断用户自身是否已经收藏了其当前浏览的商品,因此,在存在收藏夹的情况下,对收藏夹的状态查询所发起的请求是海量的。因此,系统需要考虑如何在面对此类高请求量时的响应能力的问题,尽量以更高效的方式判断用户是否已经收藏某商品,并且更新商品的最新状态以及展示商品售价,尽量节省服务器的算力,提升与收藏夹中商品收藏状态相关的请求的响应速度。
技术实现要素:
鉴于现有技术所存在的至少部分不足,本申请的目的,旨在提供一种收藏夹存储访问方法及其相应的收藏夹存储访问装置、电子设备、非易失性存储介质。
为满足本申请的目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种收藏夹存储访问方法,其包括如下步骤:
获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息;
组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录;
组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态。
进一步的实施例中,本方法还包括如下步骤:
监控所述第二散列表中商品收藏记录的总数,当总数大于预设阈值时,清除部分所述的商品收藏记录。
部分实施例中,清除部分所述的商品收藏记录的步骤,包括:
确定第二散列表中存储时间最久的既定条数的商品收藏记录作为候选记录;
对各个所述候选记录按照其相关联的历史访问次数与距离最后一次访问时间的天数进行加权计算积分;
按照积分大小对各个候选记录进行排序,将积分较小的部分候选记录从第二散列表中删除,使第二散列表的商品收藏记录总数保持在所述预设阈值的范围内。
部分实施例中,本方法还包括如下步骤:
响应于所述收藏夹的电商用户的全量访问请求,获取该请求中携带的所述店铺特征信息和用户特征信息;
根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
遍历该第二散列表,将第二散列表的所有商品收藏记录转换成可读信息列表予以返回。
部分实施例中,本方法还包括如下步骤:
响应于所述收藏夹的特定商品添加请求,获取该请求中携带的所述特征信息集,其中,所述特征信息集中还包括所述特定商品的库存可用状态;
根据所述特征信息集中的店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
以所述特征信息集中的标准化特征信息和单品特征信息为键,以所述库存可用状态为值,构成键值对,在第二散列表中创建/更新该特定商品的商品收藏记录。
部分实施例中,本方法还包括如下步骤:
响应于所述收藏夹的电商用户的特定商品移除请求,获取该请求中携带的店铺特征信息、用户特征信息以及标准化特征信息;
根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
将所述第二散列表中包含所述标准化特征信息的键所对应的商品收藏记录逐一删除。
部分实施例中,本方法还包括如下步骤:
响应于店铺用户的特定商品修改请求,获取该请求中的所述店铺特征信息、单品特征信息,以及关联于该单品特征信息的库存可用状态和/或交易价格;
查询所述第一散列表中包含所述店铺特征信息的键而获得其值指向的多个第二散列表;
以所述库存可用状态和/或交易价格存储为各个所述第二散列表中包含所述单品特征信息的键所对应的值。
适应于本申请的目的之一而提供的一种收藏夹存储访问装置,其包括:
特征获取模块,用于获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息;
列表定位模块,用于组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录;
状态查询模块,用于组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态。
适应于本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行所述的收藏夹存储访问方法。
适应于本申请的目的之一而提供一种非易失性存储介质,其以计算机可读指令的形式存储用依据所述的收藏夹存储访问方法所述实现的计算机程序,该计算机程序被计算机调用时,执行该方法所包括的步骤。
相对于现有技术,本申请具有如下优势:
本申请适应收藏夹中数据通常具有短期存储,且常因商品变动而变动等特点,以散列表为存储形式,对收藏夹中的数据记录进行组织和存储管理,在第一层级上,采用店铺特征信息和用户特征信息组合而成的键所对应的值用于指向各个电商用户的收藏夹相对应的专用散列表,采用标准化特征信息(spu)与单品特征信息(sku)组成的键所对应的值用于存储电商用户所收藏的商品信息,当需要访问收藏夹内的商品记录时,通过相应组合各种所述的特征信息为键,便可相应从两个层级的散列表中快速定位到所需的数据记录,包括定位到第二层级所述的专用散列表以及专用散列表中的商品记录等,从而,利用对散列表的这种高效组织特性,对收藏夹进行了有效的管理,提供高效访问的能力,节省系统的算力资源。
无论是因为商品本身的库存可用状态产生了变动而导致收藏夹中的商品记录相应变动,还是因电商用户添加或修改收藏夹的商品记录,两个方向的变动所引起的访问,均可借助散列表提供的高效访问能力来实现快速的响应,从而提升对收藏夹的访问的服务效率。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的网络部署架构示意图;
图2为本申请的收藏夹存储访问方法的典型实施例的流程示意图;
图3为本申请的收藏夹存储访问方法的另一实施例的流程示意图;
图4为图3中步骤s14所包括的具体步骤所形成的流程示意图;
图5为本申请的收藏夹存储访问方法的再一实施例的流程示意图;
图6为本申请的收藏夹存储访问方法的又一实施例的流程示意图;
图7为本申请的收藏夹存储访问方法的又一实施例的流程示意图;
图8为本申请的收藏夹存储访问方法的又一实施例的流程示意图;
图9为本申请的收藏夹存储访问装置的典型实施例的结构原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personalcommunicationsservice,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personaldigitalassistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(globalpositioningsystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobileinternetdevice,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本申请所称服务器80部署在云端,作为一个业务服务器,其可以负责进一步连接起相关数据服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的智能手机81和个人计算机82甚至包括其他服务器提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与云端的服务器80建立数据通信链路,以便运行所述服务器所提供的服务相关的终端应用程序。
本申请所实现的计算机服务起到中台的作用,本申请所称的中台,主要指计算机服务所需调用的中间组件,用于实现某种实用的功能,通过响应外部请求,必要时从外部请求中提供入参,经过其内部的处理之后,对应反馈外部请求所期望的结果,完成对外部请求的响应。
为便于理解,先揭示本申请用于存储收藏夹中的商品信息的存储架构。针对电商平台中的每个店铺,本申请通过两个层级的散列表来实现对收藏夹的组织和存储。所述散列表即哈希表,其以键值对的形式进行数据存储,键与值之间存在函数关系,提供一个所述的键,经过函数换算,便可获得一个对应的值。
在本申请中,第一层级的散列表主要用于为每一店铺建立各个电商用户的收藏夹相对应的第二层级散列表的存储地址的索引,每个电商用户的收藏夹所包含的商品信息借助第二层级的一个散列表进行存储。第一层级的散列表的键为由代表具体店铺的店铺特征信息与代表电商用户的用户特征信息组合成的字符串表达式,其对应的值则存储其对应的第二层级的散列表的存储地址,因此,通过第一层级的散列表,可以查询出某一电商用户的收藏夹相对应的第二层级的散列表的存储地址以便进一步访问该第二层级的散列表。第二层级的散列表的键为由代表商品spu的标准化特征信息与代表商品sku的单品特征信息组合成的字符串表达式,其对应的值则存储与商品相关的状态描述信息,包括该商品的库存可用状态、单价以及其他任意属性等。通常,所述库存可用状态包括商品正常、商品售罄和商品失效等,可用简单的数值符号表达,例如0表示商品正常、1表示商品售罄、2表示商品失效。所述单价及其他属性则根据实际需要可灵活取舍,决定是否存储在第二层级的散列表的值中。
根据对收藏夹的存储架构的揭示,可以理解,本申请所实现的技术方案提供中台服务时,仅需通过两个层级的散列表,利用四种特征信息,便可实现对多个多个店铺与多个电商用户之间的收藏夹的数据关系进行关系存储,并且,由于散列表的仅需利用函数关系即可迅速获取相应的值,具有高效访问特性,因此,对于收藏夹这种短期存储需求而言,具有非常密切的适应性。而且,由于能够通过这些形式为不同不同店铺、不同用户提供服务,因此尤其适用于实现中台组件,标准化了存储访问接口,满足本申请的需求。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
在理解上述所揭示的与本申请技术方案相关的相关部署环境和应用环境的基础上,请参阅如下说明继续了解本申请的多种实施方式:
请参阅图2,本申请的一种收藏夹存储访问方法,由安装并运行于服务器的应用程序负责执行体现以构造出本申请的中台服务,开放给外部调用,在其典型实施例中,其包括如下步骤:
步骤s11、获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息:
当电商平台所属的电商用户需要访问其某特定商品的收藏状态时,便会调用本申请所实现的中台服务以查询特定商品的库存可用状态,用于更新电商用户在访问的商品详情页或者收藏夹列表页中相应的信息。
为了查询库存可用状态,在访问所述的中台服务时,会提供一个特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息。所述店铺特征信息通常以电商平台所采用的店铺id来表征,所述电商用户的用户特征信息通常为该电商用户的用户id,所述标准化特征信息通常采用商品的spu来表达,所述的单品特征信息通常采用商品的sku来表达。
步骤s12、组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录:
根据前述揭示的存储架构,为了获得各个用户相关联的第二层级的散列表,即第二散列表,首先需要将所述的店铺特征信息即店铺id与所述用户特征信息即用户id组合成字符串表达式,作为一个键(key),利用该键,查询第一散列表,经函数转换即可获得其对应的值,由于该址存储了所述第二散列表的存储地址,因此实际上获得了第二散列表的访问入口。
由于第二散列表同理以键值对的形式存储了该电商用户的商品收藏夹对应的商品收藏记录,因此,需要进一步查询所述的第二散列表。
步骤s13、组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态:
由于第二散列表存在了商品的标准化特征信息即spu与单品特征信息即sku组合而成的字符串表达式与商品的状态描述信息之间的关系,为了从该电商用户的第二散列表中查询到特定商品的状态描述信息,特别是其中的库存可用状态,便需要首先将所述的spu与sku组合成字符表达式作为用于查询的键,然后通过函数转换,确定运算结果所指向的存储地址中所存储的值,该值即为所述的状态描述信息,从中可以获知所述特定商品的库存可用状态。
适应本实施例,示例而言,当本申请的中台服务接收到判断用户是否收藏店铺下某sku这个请求时,可以直接从缓存上根据店铺id 用户id为key从第一散列表中获取这个指定用户的收藏hash表,即第二散列表,再根据spu sku作为第二散列表上的键获取对应的值即可。若该spu sku有值,则可证明当前用户已经收藏了该商品sku,否则证明用户没收藏此商品sku。
以上,本申请的典型实施例给出了如何在以散列表构成的店铺-电商用户关系数据存储架构中查询获取收藏夹中特定商品的库存可用状态的典型实施例,由该典型实施例的揭示可见,利用散列表的这种函数转换机制,当需查询收藏夹中的商品记录的信息时,不必如一般的关系数据库般进行遍历或者二分法查询,只需通过函数转换即可快速获取数据,其访问响应效率较高。
请参阅图3,本申请的收藏夹存储访问方法的另一实施例中,相对前述的典型实施例扩展了一个可以与本申请各实施例并发运行的步骤s14、监控所述第二散列表中商品收藏记录的总数,当总数大于预设阈值时,清除部分所述的商品收藏记录:
为了控制用户收藏数量的合理性,可允许店铺在本申请的中台服务中预先配置一个预设阈值,限制电商用户收藏其商品的总数不得超过该预设阈值。店铺可配置单用户最大收藏数量,比如店铺n配置所有用户在当前店铺的最大收藏数量是100个商品sku,这种情况下,店铺进一步可以决定一个策略,使得电商用户收藏其店铺商品的记录达到最大收藏数量,即大于所述的预设阈值时,便主动淘汰“无用”收藏商品。
为了实现对电商用户最大收藏数量的监控,本申请的中台服务根据店铺n的店铺特征信息和电商用户的用户特征信息查询该电商用户在店铺n的收藏记录,找出当前用户收藏条数是否已经达到最大条数上限,若没达到最大条数上限则允许执行保存操作,如遇新增收藏记录,则将收藏记录更新到缓存上,为了确保数据存储效果,此保存流程可双写缓存和数据库。
为了实现贯彻店铺控制电商用户的最大收藏数量的策略,如图4所示,本申请的中台服务通过执行如下具体步骤,为用户清除部分所述的商品收藏记录:
步骤s141、确定第二散列表中存储时间最久的既定条数的商品收藏记录作为候选记录:
若监控到某电商用户对商品的收藏条数已经达到所述的预设阈值,便可对该电商用户的第二散列表所存储的商品记录进行查询,以便确定相关候选记录。
为了便于执行清除操作,针对电商用户在某店铺中访问过的各个商品,中台服务会记录用户在最后访问该商品时,最后一次针对该商品发起库存可用状态查询请求的判断时间,示例而言,如电商户用a在12月8日访问过此商品,由于其访问该商品的详情页时,会默认发起所述的查询请求,那么这时候系统会保存最后具体判断时间是2020年12月8日,并且会记录该用户是第几次访问此商品,每次用户访问此商品时,访问次数 1,比如第一次访问存储访问次数为1次,最后访问时间是2020年12月8日,而用户在2020年12月9日又来访问,这时候最后访问时间为2020年12月9日,访问次数为2次,以此类推,记录用户最后访问时间和从收藏此商品开始一共访问该商品多少次。
因此,根据最后一次访问时间可以得到用户最近是否访问过某商品,而根据最后访问时间系统可对该电商用户已收藏的商品列表做倒排序,以便淘汰最后访问时间最老的数据。本具体步骤中,非排它地优选一种机制,从100条收藏记录中扫描最后访问时间倒数10位的访问数据作为候选记录以便执行淘汰机制。
步骤s142、对各个所述候选记录按照其相关联的历史访问次数与距离最后一次访问时间的天数进行加权计算积分;
本具体步骤中,对前一具体步骤扫描出来的10条数据计算积分值,以最后一次访问时间 历史访问次数为公式计算最后访问权重,时间和访问次数均对应设置分数值进行计算:
比如最后一次访问时间为2020年6月1日,当时间为2020年6月6日的数据则在时间上积分5分,若访问次数为10次,那么得到的分数就是5 10=15分。当然我们也可以调整访问天数和访问次数之间的权重,如天数占2,访问次数占1,这时候计算公式变成5*2 10*1=20分。
步骤s143、按照积分大小对各个候选记录进行排序,将积分较小的部分候选记录从第二散列表中删除,使第二散列表的商品收藏记录总数保持在所述预设阈值的范围内。
系统结合时间和访问次数计算出用户访问特定商品的积分值之后,便可按照积分值对该10条收藏记录进行倒排序,可以理解,分数最低的一条数据将会被淘汰掉,每次可以只淘汰一条记录,理论上,这条记录就是根据算法得出的电商用户最不关心的数据。
贯彻本实施例对电商用户收藏夹中的最大收藏数量的监控的机制,除了上述通过查询第二散列表的方式来实现,在变换的实施例中,也可以通过对电商用户的每次收藏行为进行跟踪来实现,具体而言,每次用户收藏一个商品时,便判断收藏次数是否达到店铺最大收藏次数,比如100次,若达到这一预设阈值,便可触发上述的具体步骤,对电商用户的第二散列表所存储的商品记录数据进行清理。
实施以上的清理机制之后,电商用户的收藏夹中收藏记录的总量便被保持在所述的预设阈值的范围之内,可有效地防止用户滥用存储资源。
可以看出,本实施例通过为电商用户的收藏夹设置收藏数量最大上限,结合自动化清理机制,可以有效防止大量冗余收藏记录的积压,确保电商平台的存储资源不被滥用,也确保了对收藏夹的高效访问。
请参阅图5,本申请的收藏夹存储访问方法的再一实施例中,在本申请任意实施例的基础上,可兼容如下的并发步骤以便满足对电商用户的收藏夹中收藏商品记录的列表的访问:
步骤s21、响应于所述收藏夹的电商用户的全量访问请求,获取该请求中携带的所述店铺特征信息和用户特征信息:
所述的全量访问请求通常是电商用户进入其在某店铺的收藏夹以查看自身收藏的商品列表时发起的,这种情况下,中台服务需要将该电商用户在该店铺中收藏的所有商品查询出来,并反馈给该电商用户的终端设备进行显示。当用户进入其在某一店铺中的收藏夹而导致发起所述的全量访问请求时,系统会在该请求中携带店铺特征信息和用户特征信息,中台服务收到该请求后,便获得了相应的店铺特征和用户特征。
步骤s22、根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表:
与本申请的典型实施例同理,由于第一散列表中存储了第二散列表的地址,因此,通过将所述的店铺特征信息和用户特征信息组合成字符串作为第一散列表的键,利用第一散列表相应的函数进行转换后,便获得该键对应的值,即获得了相应的第二散列表的存储地址。
步骤s23、遍历该第二散列表,将第二散列表的所有商品收藏记录转换成可读信息列表予以返回:
由于所述的全量访问请求旨在获取该电商用户在该店铺的所有收藏记录,因此,中台服务可以将该存储地址所存储的所有键值对调出,获得所有收藏记录相关商品信息,包括其中的库存可用状态信息,将其转换成可读信息列表,返回给所述的电商用户,电商用户接收到该可读信息列表后,便展示在其浏览页面上,实现对收藏夹列表的访问。
由此可见,本实施例丰富了本申请的技术内涵,使得对收藏夹的全量访问在技术上可执行。
请参阅图6,本申请的收藏夹存储访问方法的又一实施例中,在本申请任意实施例的基础上,可兼容如下的并发步骤以便满足电商用户向其在某一店铺中的收藏夹中添加商品收藏记录,更新已收藏该商品的电商用户的相关商品收藏记录:
步骤s31、响应于所述收藏夹的特定商品添加请求,获取该请求中携带的所述特征信息集,其中,所述特征信息集中还包括所述特定商品的库存可用状态:
当用户在浏览某一店铺的商品即所述的特定商品,并执行将该特定商品添加到其在该店铺中的收藏夹的行为时,便会触发所述的特定商品添加请求。触发这一请求时,系统会向本申请的中台服务提交所述的特征信息集,并且,在这种情况下,所述的特征信息集中还会包括所述特定商品的库存可用状态。
步骤s32、根据所述特征信息集中的店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表:
与前述关于通过第一散列表定位到第二散列表的方式同理,通过所述特征信息集中的店铺特征信息和用户特征信息组成键之后,便可从第一散列表中确定相应的第二散列表。
步骤s33、以所述特征信息集中的标准化特征信息和单品特征信息为键,以所述库存可用状态为值,构成键值对,在第二散列表中创建/更新该特定商品的商品收藏记录:
示例而言,当电商用户在某个店铺将商品添加到收藏夹时,系统建立用户和店铺商品的收藏关系,此时会往缓存hash表即所述的第二散列表,在第二散列表上赋值某个key,key为spu sku的组合,当中台服务获得这个key的赋值之后,首先会判断对应的hash表是否存在,若hash表上没有任何一个键值对时则不存在,若hash表已经存在则会继续判断当前key是否存在,如若不存在则新加一个key,若存在则将新值替换旧值,实现对所述特定商品的商品收藏记录的创建或更新。
本实施例丰富了本申请的技术内涵,解决了电商用户发起向收藏夹添加特定商品的需求,在店铺-用户关系中,属于用户方向的变动引起数据关系的修改。
请参阅图7,本申请的收藏夹存储访问方法的又一实施例中,在本申请任意实施例的基础上,可兼容如下的并发步骤以便满足电商用户自行移除其已收藏的商品收藏记录的需求:
步骤s41、响应于所述收藏夹的电商用户的特定商品移除请求,获取该请求中携带的店铺特征信息、用户特征信息以及标准化特征信息:
相对于其他实施例,本实施例中,用户移除的商品是明确的,而且用户移除的对象通常是整个商品,即在spu层面删除相关的商品收藏记录,因此,通常情况下只需提供店铺、用户、spu层面的特征信息即可。当然,作为等同替换手段,用户也可替换提供sku层面的单品特征信息,或者同时提供spu sku层面的特征信息,中台服务获取这些信息后便可进行对应的处理。
步骤s42、根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表:本步骤同于前述已经揭示的实施例而通过第一散列表获取到相应的电商用户的第二散列表。
步骤s43、将所述第二散列表中包含所述标准化特征信息的键所对应的商品收藏记录逐一删除:
本具体步骤中,可以通过查询第二散列表中的键是否包含所述标准化特征信息来确定是否是需要删除的商品收藏记录,检索出这些商品收藏记录之后,将其逐一删除即可。当然,如果标准化特征信息被等同替换为单品特征信息,或者被替换为标准化特征信息与单品特征信息,也可同理执行相应的检索操作而确定相关商品收藏记录,予以删除。
因此可以理解,当电商用户移除收藏夹时,中台服务会移除电商用户在当前spu sku的值,spu能标识某一商品,sku能标识商品的具体某个款式,一个spu下有多个sku,若用户移除的是整个spu,那么便将包含有该spu键对应的键值对都移除掉,逐步移除缓存上该spu下与任意sku组合成的key。
由此可见,本实施例进一步丰富了本申请的技术内容,当电商用户需要删除单条或者部分商品收藏记录时,通过本实施例所揭示的方式,可以实现高效的访问。
请参阅图8,本申请的收藏夹存储访问方法的又一实施例中,在本申请任意实施例的基础上,可兼容如下的并发步骤以便满足因店铺一侧的商品的库存可用状态变动而引起的、对商品收藏记录进行适应性修改的需求:
步骤s51、响应于店铺用户的特定商品修改请求,获取该请求中的所述店铺特征信息、单品特征信息,以及关联于该单品特征信息的库存可用状态和/或交易价格:
当店铺方的某种商品售罄、下架、恢复供货时,自然导致对应的特定商品的库存可用状态的变动,这种情况下,中台服务需要因应店铺用户自动触发的特定商品修改请求而修改所述特定商品被收藏形成的商品收藏记录。理论上,这些商品收藏记录散布地与多个电商用户相关联,如果采用传统的关系数据表格存储商品收藏记录,其导致的计算量之巨不言自知,由于本申请采用的是散列存储原理,因此能有效地避免这些缺陷。在店铺方的特定商品修改请求中,可以获取其店铺特征信息、单品特征信息以及该特定商品的库存可用状态,甚至根据需要,有时还可包括所述的交易价格,具体视第二散列表中的值所存储的内容而定。需要注意的是,在该请求中,考虑到该请求并非由某个电商用户发起,而且被收藏的特定商品可能正是被多个电商用户收藏,因此,并不要求提供所述的用户特征信息。
步骤s52、查询所述第一散列表中包含所述店铺特征信息的键而获得其值指向的多个第二散列表:
为了确定已经收藏了该特定商品的相关电商用户,而因为第一散列表的键正是由店铺特征信息和用户特征信息所构成,因此,通过所述的店铺特征信息可以查询出与该店铺相关联的所有电商用户所对应的第二散列表,即收藏了该店铺的至少一种商品的电商用户所对应的第二散列表。尽管这些电商用户中可能有部分用户并未收藏该特定商品,但通过后续步骤的执行,实际上并本影响达到本实施例的目的。
步骤s53、以所述库存可用状态和/或交易价格存储为各个所述第二散列表中包含所述单品特征信息的键所对应的值:
同理,由于第二散列表的键是以商品的标准化特征信息和单品特征信息组合表达的,每个键均包含了其中的单品特征信息,因此,以所述的单品特征信息查询前一具体步骤获得的多个第二散列表的键,便可快速地定位出包含所述单口特征信息的商品收藏记录对应的键值对,从而无需基于关心哪些用户收藏了该特定商品,而直播获得对应的键值对,获得其中的值。这种情况下,逐一将所述的库存可用状态和/或交易价格替换存储该些值中,便可实现对各个相关电商用户的关于所述特定商品的收藏记录的更新。
本实施例进一步丰富了本申请的技术内容,在店铺-用户关系中,因店铺方商品信息引起的变动所产生库存可用状态,可由本实施例的实施而迅速高效地同步给多个已经收藏该商品的电商用户。
进一步的,可以通过将上述的收藏夹存储访问方法中的各个实施例进行功能化,构造出本申请的一种收藏夹存储访问装置,按照这一思路,请参阅图9,其典型实施例中,该装置包括:
特征获取模块11,用于获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息;
列表定位模块12,用于组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录;
状态查询模块13,用于组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态。
为了便于本申请的执行,提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中计算机程序以执行如前述的一种收藏夹存储访问方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的收藏夹存储访问方法的各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本申请的基于散列存储技术对电商平台的收藏夹数据存储进行管理,提升了收藏夹数据的存储和访问效率。
本技术领域技术人员可以理解,本申请包涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
1.一种收藏夹存储访问方法,其特征在于,包括如下步骤:
获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息;
组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录;
组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态。
2.根据权利要求1所述的方法,其特征在于,还包括如下步骤:
监控所述第二散列表中商品收藏记录的总数,当总数大于预设阈值时,清除部分所述的商品收藏记录。
3.根据权利要求1所述的方法,其特征在于,清除部分所述的商品收藏记录的步骤,包括:
确定第二散列表中存储时间最久的既定条数的商品收藏记录作为候选记录;
对各个所述候选记录按照其相关联的历史访问次数与距离最后一次访问时间的天数进行加权计算积分;
按照积分大小对各个候选记录进行排序,将积分较小的部分候选记录从第二散列表中删除,使第二散列表的商品收藏记录总数保持在所述预设阈值的范围内。
4.根据权利要求1所述的方法,其特征在于,包括如下步骤:
响应于所述收藏夹的电商用户的全量访问请求,获取该请求中携带的所述店铺特征信息和用户特征信息;
根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
遍历该第二散列表,将第二散列表的所有商品收藏记录转换成可读信息列表予以返回。
5.根据权利要求1所述的方法,其特征在于,包括如下步骤:
响应于所述收藏夹的特定商品添加请求,获取该请求中携带的所述特征信息集,其中,所述特征信息集中还包括所述特定商品的库存可用状态;
根据所述特征信息集中的店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
以所述特征信息集中的标准化特征信息和单品特征信息为键,以所述库存可用状态为值,构成键值对,在第二散列表中创建/更新该特定商品的商品收藏记录。
6.根据权利要求1所述的方法,其特征在于,包括如下步骤:
响应于所述收藏夹的电商用户的特定商品移除请求,获取该请求中携带的店铺特征信息、用户特征信息以及标准化特征信息;
根据所述店铺特征信息和用户特征信息组合成的键查询所述第一散列表而确定对应的第二散列表;
将所述第二散列表中包含所述标准化特征信息的键所对应的商品收藏记录逐一删除。
7.根据权利要求1所述的方法,其特征在于,包括如下步骤:
响应于店铺用户的特定商品修改请求,获取该请求中的所述店铺特征信息、单品特征信息,以及关联于该单品特征信息的库存可用状态和/或交易价格;
查询所述第一散列表中包含所述店铺特征信息的键而获得其值指向的多个第二散列表;
以所述库存可用状态和/或交易价格存储为各个所述第二散列表中包含所述单品特征信息的键所对应的值。
8.一种收藏夹存储访问装置,其特征在于,其包括:
特征获取模块,用于获取用于查询电商用户关于特定商品的收藏状态所需的特征信息集,所述特征信息集包括指示所述特定商标所属店铺用户的店铺特征信息、所述电商用户的用户特征信息、所述特定商品的标准化特征信息及单品特征信息;
列表定位模块,用于组合所述店铺特征信息与所述用户特征信息为键,查询第一散列表获得对应的值,确定以该值为地址所指向的第二散列表,第二散列表用于以键值对形式存储所述电商用户的商品收藏夹相对应的商品收藏记录;
状态查询模块,用于组合所述特定商品的标准化特征信息与所述单品特征信息为键,查询所述第二散列表获得对应的值,该值至少存储有所述特定商品的库存可用状态。
9.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任一项所述的方法的步骤。
10.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
技术总结