CN113448649A - 一种基于Redis的首页数据加载的服务器及方法 - Google Patents
一种基于Redis的首页数据加载的服务器及方法 Download PDFInfo
- Publication number
- CN113448649A CN113448649A CN202110762800.7A CN202110762800A CN113448649A CN 113448649 A CN113448649 A CN 113448649A CN 202110762800 A CN202110762800 A CN 202110762800A CN 113448649 A CN113448649 A CN 113448649A
- Authority
- CN
- China
- Prior art keywords
- redis
- data
- home page
- page data
- key value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于Redis的首页数据加载的服务器及方法,服务器包括:源数据库、Redis缓存器以及信令处理模块;方法包括:接收终端设备发送的获取首页数据的第一请求指令,响应生成Redis‑key值,发送静态资源数据包和Redis‑key值至终端设备,以向源数据库发送第二请求指令,接收源数据库响应于第二请求指令返回的初始首页数据,将Redis‑key值和初始首页数据对应缓存在Redis缓存器,根据Redis‑key值从Redis缓存器中获取对应的初始首页数据并发送给终端设备。本申请通过Redis缓存首页加载数据,将静态资源数据包和初始首页数据同步处理,提高了整体查询效率,优化了首页展示效率。
Description
技术领域
本申请涉及Redis数据加载技术领域,尤其涉及一种基于Redis的首页数据加载的服务器及方法。
背景技术
随着互联网技术的飞速发展,现在的网站和应用APP(application)的信息量越来越大,尤其是网站和APP的首页,包含的数据、图像、动画、布局、导航等等信息也极其丰富,首页首页的展示效果越来越动人,如此庞大繁复的首页首页对加载效果的要求也越来越高。首页首页构建完成后的构建数据包的体量很大,导致首页首页的加载时间过长,甚至存在长时间白屏的问题,用户体验比较差。另外,当网络传输状况不佳时,网络延迟也会影响首页首页加载的效果,降低了首页首页的加载速度。
在各种首页加载的应用场景中,基于微服务的终端首页加载速度越来越受到人们的重视,原因在于APP在手机、平板电脑以及智能电视上的广泛应用几乎成为现今社会人们生活的日常。所谓微服务(或微服务架构),它是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。相比于单体应用,微服务有其独特的性能优势,所以目前微服务化正在开发领域全面推广开来。
对于APP的首页(首屏)加载展示,无论是面向TV端首页还是面向移动端(如手机、平板电脑等)首页,目前业界的通用做法是由终端发起首页数据请求(携带用户标识性参数)到达服务端,服务端根据参数组合成对应的查询条件,经过一定的算法、业务逻辑处理、甚至可能请求其他业务子系统获取所需数据,最终将首页需要的数据进行汇聚,通过接口一次性下给终端,终端再进行数据结构解析和首页渲染展示。由于整个过程采用同步串行处理方式进行,严重影响了首页的渲染速度,造成首页加载效率低、用户体验不佳。
随着电视和移动终端的数额量级逐年攀升,加之首页运营内容也在不断地丰富,例如某一面世产品,首页的Tiles数据结构中就包括登录用户信息、头图信息、分类信息、优惠券活动信息、各种模板专题信息、大数据推荐信息以及导航操作信息等等,可想而知它的复杂度和交互数据量之高,每次从服务端请求一次首页,服务端业务需要根据当前登录用户标识customerId、设备机型标识featurecode、productCode和AppVersion等信息从账号子系统、媒资子系统和推荐子系统中查询出首页所需的各种数据,再将此部分数据进行一定的算法、业务逻辑处理,最终汇总形成首页数据并返回。整个首页加载过程进行数据处理的复杂度和交互数据量都非常高,因此,在整个首页加载过程中如果仅对串行流程中局部节点进行优化已经不能满足用户对首页访问速度的体验,亟待一种行之有效的提升终端首页访问效率的方法。
发明内容
本申请提供了一种基于Redis的首页数据加载的服务器及方法,以解决目前首页访问效率较低、用户体验不佳的问题。
本申请采用的技术方案如下:
本申请的第一方面,提供一种基于Redis的首页数据加载的服务器,包括:
源数据库;
Redis缓存器;
信令处理模块,所述信令处理模块被配置为:
接收终端设备发送的获取首页数据的第一请求指令;
响应于所述第一请求指令,生成Redis-key值,以发送对应所述第一请求指令的静态资源数据包和所述Redis-key值至终端设备,以及根据所述请求指令中携带的业务查询参数生成查询条件,以向所述源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令;
接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
接收终端设备发送的包含所述Redis-key值的数据获取请求;
根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备。
结合本申请的第一方面,在一种可实现方式中,所述终端设备在发送获取首页数据的第一请求指令失败情况下,启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
结合本申请的第一方面,在一种可实现方式中,所述信令处理模块生成Redis-key失败情况下,返回接口业务错误码给所述终端设备,所述终端设备启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
结合本申请的第一方面,在一种可实现方式中,所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器失败时,启用重试机制,如果重试失败,本次数据不写入Redis缓存器,等待下次接收获取首页数据的请求指令时重新写入;
如果所述信令处理模块将所述Redis-key值对应的初始首页数据发送给所述终端设备失败时,则发送无首页数据返回错误码至终端设备,终端设备在收到所述无首页数据返回错误码时,重新发起获取首页数据的第一请求指令,重走流程。
结合本申请的第一方面,在一种可实现方式中,所述Redis-key值中,包含终端类型数据和用户标识customerId;所述源数据库包含两个或两个以上的数据库;所述业务查询参数包含时间处理数据、排序数据以及分组数据。
结合本申请的第一方面,在一种可实现方式中,所述信令处理模块进一步配置为:所述信令处理模块接收所述源数据库响应于所述第二请求指令返回的初始首页数据后,对所述初始首页数据进行预设的逻辑组装处理,所述预设的逻辑组装处理包括:整合所述初始首页数据,进行对象到JSON字符串的转换。
结合本申请的第一方面,在一种可实现方式中,所述信令处理模块进一步配置为:将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器后,还包括:在Redis缓存器中设置缓存有效期。
结合本申请的第一方面,在一种可实现方式中,所述Redis缓存器包括Redis数据库和闪存,所述Redis数据库存储在所述闪存中。
由以上技术方案可知,本申请第一方面提供的一种基于Redis的首页数据加载的服务器,包括:源数据库、Redis缓存器以及信令处理模块,所述信令处理模块被配置为:接收终端设备发送的获取首页数据的第一请求指令;响应于所述第一请求指令,生成Redis-key值,以发送对应所述第一请求指令的静态资源数据包和所述Redis-key值至终端设备,以及根据所述请求指令中携带的业务查询参数生成查询条件,以向所述源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令;接收所述源数据库响应于所述第二请求指令返回的初始首页数据;将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;接收终端设备发送的包含所述Redis-key值的数据获取请求;根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备。本申请的设备中需要处理的对象数据包括两部分数据,即静态资源数据包和缓存首页数据,将缓存首页数据通过Redis进行缓存,将之前常用的串行渲染方式改为并行方式,处理首页请求的信令处理模块在收到首页请求指令后,下发静态资源数据包和缓存首页数据进行同步处理,提高了整体查询效率,达到优化首页展示效率的目标,加快了首页数据加载的速度,提升了用户体验效果。
本申请的第二方面,提供一种基于Redis的首页数据加载的方法,包括以下步骤:
终端设备向信令处理模块发送获取首页数据的第一请求指令,所述信令处理模块响应于所述第一请求指令生成Redis-key值;
所述信令处理模块发送静态资源数据包和所述Redis-key值至终端设备,终端设备解析静态资源数据包,执行首页JS脚本,使用Redis-key值向信令处理模块发起请求缓存首页数据接口;
根据所述请求指令中携带的业务查询参数生成查询条件,以向源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令,接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
所述信令处理模块接收所述终端设备发送的包含所述Redis-key值的数据获取请求,根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备;
终端设备接收缓存首页数据进行首页动态渲染展示。
结合本申请的第二方面,在一种可实现方式中,所述方法还包括:在所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器的步骤中,还包括:在Redis缓存器中设置缓存有效期。
由以上技术方案可知,本申请第二方面提供一种基于Redis的首页数据加载的方法,包括终端设备向信令处理模块发送获取首页数据的第一请求指令,所述信令处理模块响应于所述第一请求指令生成Redis-key值;所述信令处理模块发送静态资源数据包和所述Redis-key值至终端设备,终端设备解析静态资源数据包,执行首页JS脚本,使用Redis-key值向信令处理模块发起请求缓存首页数据接口;根据所述请求指令中携带的业务查询参数生成查询条件,以向源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令,接收所述源数据库响应于所述第二请求指令返回的初始首页数据;所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;所述信令处理模块接收所述终端设备发送的包含所述Redis-key值的数据获取请求,根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备;终端设备接收缓存首页数据进行首页动态渲染展示。本申请的方法中需要处理的对象数据包括两部分数据,即静态资源数据包和缓存首页数据,将缓存首页数据通过Redis进行缓存,将之前常用的串行渲染方式改为并行方式,处理首页请求的信令处理模块在收到首页请求指令后,下发静态资源数据包和缓存首页数据进行同步处理,提高了整体查询效率,达到优化首页展示效率的目标,加快了首页数据加载的速度,提升了用户体验效果。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种基于Redis的首页数据加载的方法流程图;
图2为本申请实施例的另一种基于Redis的首页数据加载的方法流程图;
图3为本申请实施例基于Redis的首页数据加载的流程框图。
具体实施方式
为使本申请示例性实施例的目的、技术方案和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本说明书通篇提及的“多个实施例”、“一些实施例”、“一个实施例”或“实施例”等,意味着结合该实施例描述的具体特征、结构或特性包括在至少一个实施例中。因此,本说明书通篇出现的短语“在多个实施例中”、“在一些实施例中”、“在至少另一个实施例中”或“在实施例中”等并不一定都指相同的实施例。此外,在一个或多个实施例中,具体特征、结构或特性可以任何合适的方式进行组合。因此,在无限制的情形下,结合一个实施例示出或描述的具体特征、结构或特性可全部或部分地与一个或多个其他实施例的特征、结构或特性进行组合。这种修改和变型旨在包括在本申请的范围之内。
在各种首页加载的应用场景(如手机APP、平板电脑APP和智能电视APP等)中,基于微服务的终端首页加载速度越来越受到人们的重视,原因在于APP在手机、平板电脑以及智能电视上的广泛应用几乎成为现今社会人们生活的日常。所谓微服务(或微服务架构),它是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。相比于单体应用,微服务有其独特的性能优势,所以目前微服务化正在开发领域全面推广开来。
对于APP的首页(首屏)加载展示,无论是面向TV端首页还是面向移动端(如手机、平板电脑等)首页,目前业界的通用做法是由终端发起首页数据请求(携带用户标识性参数)到达服务端,服务端根据参数组合成对应的查询条件,经过一定的算法、业务逻辑处理、甚至可能请求其他业务子系统获取所需数据,最终将首页需要的数据进行汇聚,通过接口一次性下给终端,终端再进行数据结构解析和首页渲染展示。由于整个过程采用同步串行处理方式进行,严重影响了首页的渲染速度,造成首页加载效率低、用户体验不佳。
随着电视和移动终端的数额量级逐年攀升,加之首页运营内容也在不断地丰富,例如某一面世产品,首页的Tiles数据结构中就包括登录用户信息、头图信息、分类信息、优惠券活动信息、各种模板专题信息、大数据推荐信息以及导航操作信息等等,可想而知它的复杂度和交互数据量之高,每次从服务端请求一次首页,服务端业务需要根据当前登录用户标识customerId、设备机型标识featurecode、productCode和AppVersion等信息从账号子系统、媒资子系统和推荐子系统中查询出首页所需的各种数据,再将此部分数据进行一定的算法、业务逻辑处理,最终汇总形成首页数据并返回。整个首页加载过程进行数据处理的复杂度和交互数据量都非常高,因此,在整个首页加载过程中如果仅对串行流程中局部节点进行优化已经不能满足用户对首页访问速度的体验,亟待一种行之有效的提升终端首页访问效率的方法。
本申请的实施例中,从客观的首页数据入手,寻找提高首页加载效率的途径。一般而言,首页数据相对地可分为两部分,即动态数据和静态数据,将静态数据预先存储在处理模块中,而将动态数据以Redis方式闪存,当应用场景点击启动首页时,以同步并行的方式,一方面加载解析静态数据,另一方面通过Redis-key值获取动态数据,进而在应用场景的显示界面上进行展示,达到本申请提高首页加载速率的目标。
为了进一步提高首页加载的速率,提升用户体验,本申请提供一种基于Redis的首页数据加载的服务器,包括:
源数据库;
Redis缓存器;
信令处理模块,所述信令处理模块被配置为:
接收终端设备发送的获取首页数据的第一请求指令;
响应于所述第一请求指令,生成Redis-key值,以发送对应所述第一请求指令的静态资源数据包和所述Redis-key值至终端设备,以及根据所述请求指令中携带的业务查询参数生成查询条件,以向所述源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令;
接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
接收终端设备发送的包含所述Redis-key值的数据获取请求;
根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备。
如图1所示,在本申请提供的部分实施例中,示出了信令处理模块被配置为基于Redis的首页数据加载的方法流程图。
首页加载所需求的数据,根据数据的属性可分为静态数据和动态数据,静态数据是指在运行过程中主要作为控制或参考用的数据,它们在很长的一段时间内不会变化,一般不随运行而变。动态数据是指在系统应用中随时间变化而改变的数据,如库存数据等。动态数据是常常变化,直接反映事务过程的数据,比如,网站访问量、在线人数、日销售额等等。动态数据包括所有在运行中发生变化的数据以及在运行中需要输入、输出的数据及在连机操作中要改变的数据。为了提升首页加载速率,传统的做法是在串行数据加载的基础上,对串行数据传输的节点进行局部优化。而本申请实施例中,从数据本身的属性角度出发,对静态数据和动态数据实施并行加载,为了更加提升加载速率,将动态数据采用Redis缓存方式进行加载,由于动态数据通过Redis缓存方式储存在内存中,读取或接受的速率相对传统方式更加迅速,将动态数据剥离出来,使得静态数据的数据量相对原有的数据总量更为减少,也更利于缩短加载的时间。
目前本申请主要适用于首页加载,而非详情页加载。主要是由于首页采用单页模式,而详情页静态资源加载占用时间很短,因此本申请应用于首页加载的效果明显,而应用于详情页加载时未能体现明显的优势。通过对本申请构思的理解,在多页应用中运用本申请的技术方案也是可行的。但由于目前首页基本均采用单页模式进行开发,故本申请目前更适用于首页的加载优化。与现有技术相比,目前首页数据加载方式为:终端先通过静态文件url加载完静态资源、解析完动态js脚本,此时才向首页服务器发起数据请求,首页服务器再通过条件关联查询从数据源服务器将终端所需数据准备,最后再返回给终端展示。而本申请的首页加载方式为:将静态资源加载解析过程和通过Redis缓存方式加载动态数据的过程实现并行,提高首页展示效率。
Redis是一个数据库服务,与传统关系型数据库不同的是:Redis的数据是在内存中处理及存储的,因此在I/O读写方面,操作内存比操作文件效率方面高出至少10w倍,所以Redis被广泛应用于数据缓存方面(Redis读的速度是110000次/s,写的速度是81000次/s)。Redis存储数据支持的数据类型包括:String字符串、List集合、Hash集合(key-value)以及Set集合等,在存储高复杂度数据方面非常方便。
在一些实施例中,所述终端设备在发送获取首页数据的第一请求指令失败情况下,启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
在网络、设备或其它原因产生故障时,发送获取首页数据的第一请求指令可能会遭遇失败的情况,为了避免操作者体验不佳,在这种发送获取首页数据的第一请求指令失败情况下,启用重试机制,重新发送获取首页数据的第一请求指令,从而在短时间内提高首页加载的成功率,有利于提升用户体验。如果重试失败,则使用本地缓存数据进行降级首页展示;预先在终端设备上预存首页展示的缓存数据,进行降级首页展示,虽然并不能完整展示全部首页内容,但在一定程度上弥补了操作者获取首页失败造成的缺失。
在一些实施例中,所述信令处理模块生成Redis-key值失败情况下,返回接口业务错误码给所述终端设备,所述终端设备启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
生成Redis-key值失败时,无法调用存储在Redis缓存器中的动态数据,从而造成数据不完整,影响用户体验。此时返回接口业务错误码给终端设备,启用重试机制,实现成功加载的目标。如果重试仍然失败时,则进行降级首页展示,完成首页加载过程。
在一些实施例中,所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器失败时,启用重试机制,如果重试失败,本次数据不写入Redis缓存器,等待下次接收获取首页数据的请求指令时重新写入;
如果所述信令处理模块将所述Redis-key值对应的初始首页数据发送给所述终端设备失败时,则发送无首页数据返回错误码至终端设备,终端设备在收到所述无首页数据返回错误码时,重新发起获取首页数据的第一请求指令,重走流程。
利用Redis-key值将预处理首页数据在Redis缓存器中进行缓存时失败,将导致Redis缓存器并未存储必要的动态数据,此时启用重试机制,重新将数据写入Redis缓存器,有利于后续获取存储在Redis缓存器中的动态数据,顺利完成首页加载。
关于Redis缓存器的所有操作都是原子性的,原子性的意思是:要么成功执行要么失败完全不执行。原子性有利于在高并发/高可用下数据的安全存储。因此在启用重试机制后失败后,本次数据将不写入Redis缓存器,等待下次接收获取首页数据的请求指令时重新写入,从而保证了数据存储的安全性。
在一些实施例中,所述Redis-key值中,包含终端类型数据和用户标识customerId;
所述源数据库包含两个或两个以上的数据库;
所述业务查询参数包含时间处理数据、排序数据以及分组数据。
Redis-key值中包含终端类型数据和用户标识customerId,有利于数据的定向加载。首页数据加载时,根据终端类型数据和用户标识customerId,推送或加载相关的数据,甚至个性化的定制数据,极大地满足了终端设备用户的需求,进一步提升用户的感观体验。
数据来源多元化的背景下,源数据库可以不限定于单个数据库,也可以是包含两个或两个以上的数据库。同时从多个数据库中获取首页加载相关数据,扩展了首页加载的内容,体现了首页加载的多元和丰富性。
业务查询参数包含时间处理数据、排序数据以及分组数据,将数据参数进一步细化,提升首页加载时的加载效率。
在一些实施例中,所述信令处理模块进一步配置为:所述信令处理模块接收所述源数据库响应于所述第二请求指令返回的初始首页数据后,对所述初始首页数据进行预设的逻辑组装处理,所述预设的逻辑组装处理包括:整合所述初始首页数据,进行对象到JSON字符串的转换。
JSON字符串可将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。JavaScript很容易解释JSON字符串,而且JSON字符串可表示更复杂的结构。从语法方面来看,JSON字符串更容易使用,而且可读性更好。JSON字符串不但能够提高可读性,而且可以减少复杂性,从而提升首页加载的效率。
在一些实施例中,所述信令处理模块进一步配置为:将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器后,还包括:在Redis缓存器中设置缓存有效期。
在Redis缓存器中设置缓存有效期,预防数据脏读,同时也有利于数据的安全存储。
在一些实施例中,所述Redis缓存器包括Redis数据库和闪存,所述Redis数据库存储在所述闪存中。
Redis缓存器包括实体的闪存和存储在闪存内的Redis数据库。由于Redis数据库存储在闪存中,读取非常便捷,同时可与静态数据的加载同步并行处理,有利于提升首页加载的效率。在本申请中的Redis缓存器的闪存,可以是独立于信令处理模块,也可以集成在信令处理模块中,属于信令处理模块的一部分,均属于本申请的技术构思。
由以上技术方案可知,本申请第一方面提供的一种基于Redis的首页数据加载的服务器,包括:源数据库、Redis缓存器以及信令处理模块,所述信令处理模块被配置为:接收终端设备发送的获取首页数据的第一请求指令;响应于所述第一请求指令,生成Redis-key值,以发送对应所述第一请求指令的静态资源数据包和所述Redis-key值至终端设备,以及根据所述请求指令中携带的业务查询参数生成查询条件,以向所述源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令;接收所述源数据库响应于所述第二请求指令返回的初始首页数据;将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;接收终端设备发送的包含所述Redis-key值的数据获取请求;根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备。本申请的设备中需要处理的对象数据包括两部分数据,即静态资源数据包和缓存首页数据,将缓存首页数据通过Redis进行缓存,将之前常用的串行渲染方式改为并行方式,处理首页请求的信令处理模块在收到首页请求指令后,下发静态资源数据包和缓存首页数据进行同步处理,提高了整体查询效率,达到优化首页展示效率的目标,加快了首页数据加载的速度,提升了用户体验效果。
如图3所示,本申请的第二方面,提供一种基于Redis的首页数据加载的方法,包括以下步骤:
S1001、终端设备向信令处理模块发送获取首页数据的第一请求指令,所述信令处理模块响应于所述第一请求指令生成Redis-key值;
S1002、所述信令处理模块发送静态资源数据包和所述Redis-key值至终端设备,终端设备解析静态资源数据包,执行首页JS脚本,使用Redis-key值向信令处理模块发起请求缓存首页数据接口;
S1003、根据所述请求指令中携带的业务查询参数生成查询条件,以向源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令,接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
S1004、所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
S1005、所述信令处理模块接收所述终端设备发送的包含所述Redis-key值的数据获取请求,根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备;
S1006、终端设备接收缓存首页数据进行首页动态渲染展示。
如图2所示,终端设备接收静态资源数据包和缓存首页数据后,进行首页动态渲染展示,完成首页的数据加载。
在一些实施例中,所述方法还包括:在所述所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器的步骤中,还包括:在Redis缓存器中设置缓存有效期。
由以上技术方案可知,本申请第二方面提供一种基于Redis的首页数据加载的方法,包括终端设备向信令处理模块发送获取首页数据的第一请求指令,所述信令处理模块响应于所述第一请求指令生成Redis-key值;所述信令处理模块发送静态资源数据包和所述Redis-key值至终端设备,终端设备解析静态资源数据包,执行首页JS脚本,使用Redis-key值向信令处理模块发起请求缓存首页数据接口;根据所述请求指令中携带的业务查询参数生成查询条件,以向源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令,接收所述源数据库响应于所述第二请求指令返回的初始首页数据;所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;所述信令处理模块接收所述终端设备发送的包含所述Redis-key值的数据获取请求,根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备;终端设备接收缓存首页数据进行首页动态渲染展示。本申请的方法中需要处理的对象数据包括两部分数据,即静态资源数据包和缓存首页数据,将缓存首页数据通过Redis进行缓存,将之前常用的串行渲染方式改为并行方式,处理首页请求的信令处理模块在收到首页请求指令后,下发静态资源数据包和缓存首页数据进行同步处理,提高了整体查询效率,达到优化首页展示效率的目标,加快了首页数据加载的速度,提升了用户体验效果。
本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。
Claims (10)
1.一种基于Redis的首页数据加载的服务器,其特征在于,包括:
源数据库;
Redis缓存器;
信令处理模块,所述信令处理模块被配置为:
接收终端设备发送的获取首页数据的第一请求指令;
响应于所述第一请求指令,生成Redis-key值,以发送对应所述第一请求指令的静态资源数据包和所述Redis-key值至终端设备,以及根据所述请求指令中携带的业务查询参数生成查询条件,以向所述源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令;
接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
接收终端设备发送的包含所述Redis-key值的数据获取请求;
根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备。
2.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述终端设备在发送获取首页数据的第一请求指令失败情况下,启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
3.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述信令处理模块生成Redis-key值失败情况下,返回接口业务错误码给所述终端设备,所述终端设备启用重试机制,如果重试失败,则使用本地缓存数据进行降级首页展示。
4.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器失败时,启用重试机制,如果重试失败,本次数据不写入Redis缓存器,等待下次接收获取首页数据的请求指令时重新写入;
如果所述信令处理模块将所述Redis-key值对应的初始首页数据发送给所述终端设备失败时,则发送无首页数据返回错误码至终端设备,终端设备在收到所述无首页数据返回错误码时,重新发起获取首页数据的第一请求指令,重走流程。
5.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述Redis-key值中,包含终端类型数据和用户标识customerId;
所述源数据库包含两个或两个以上的数据库;
所述业务查询参数包含时间处理数据、排序数据以及分组数据。
6.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述信令处理模块进一步配置为:
所述信令处理模块接收所述源数据库响应于所述第二请求指令返回的初始首页数据后,对所述初始首页数据进行预设的逻辑组装处理,所述预设的逻辑组装处理包括:整合所述初始首页数据,进行对象到JSON字符串的转换。
7.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述信令处理模块进一步配置为:
将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器后,还包括:在Redis缓存器中设置缓存有效期。
8.根据权利要求1所述的基于Redis的首页数据加载的服务器,其特征在于,所述Redis缓存器包括Redis数据库和闪存,所述Redis数据库存储在所述闪存中。
9.一种基于Redis的首页数据加载的方法,其特征在于,包括以下步骤:
终端设备向信令处理模块发送获取首页数据的第一请求指令,所述信令处理模块响应于所述第一请求指令生成Redis-key值;
所述信令处理模块发送静态资源数据包和所述Redis-key值至终端设备,终端设备解析静态资源数据包,执行首页JS脚本,使用Redis-key值向信令处理模块发起请求缓存首页数据接口;
根据所述请求指令中携带的业务查询参数生成查询条件,以向源数据库发送包含所述查询条件的第二请求指令,其中,每一Redis-key值对应一个第一请求指令,接收所述源数据库响应于所述第二请求指令返回的初始首页数据;
所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器;
所述信令处理模块接收所述终端设备发送的包含所述Redis-key值的数据获取请求,根据所述数据获取请求中的所述Redis-key值从所述Redis缓存器中获取和所述Redis-key值对应的初始首页数据并发送给所述终端设备;
终端设备接收缓存首页数据进行首页动态渲染展示。
10.根据权利要求9所述的基于Redis的首页数据加载的方法,其特征在于,在所述所述信令处理模块将所述Redis-key值和所述初始首页数据对应缓存在Redis缓存器的步骤中,还包括:在Redis缓存器中设置缓存有效期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110762800.7A CN113448649B (zh) | 2021-07-06 | 2021-07-06 | 一种基于Redis的首页数据加载的服务器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110762800.7A CN113448649B (zh) | 2021-07-06 | 2021-07-06 | 一种基于Redis的首页数据加载的服务器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448649A true CN113448649A (zh) | 2021-09-28 |
CN113448649B CN113448649B (zh) | 2023-07-14 |
Family
ID=77815154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110762800.7A Active CN113448649B (zh) | 2021-07-06 | 2021-07-06 | 一种基于Redis的首页数据加载的服务器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448649B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722046A (zh) * | 2022-04-18 | 2022-07-08 | 聚好看科技股份有限公司 | 一种服务器及首页缓存数据分版本生成方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897024A (zh) * | 2015-12-18 | 2017-06-27 | 北京国双科技有限公司 | 数据写入方法及装置 |
CN108470054A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种数据访问方法及系统 |
CN110149364A (zh) * | 2019-04-15 | 2019-08-20 | 厦门市美亚柏科信息股份有限公司 | 基于数据服务平台提供微服务的方法、装置、存储介质 |
CN110287430A (zh) * | 2019-06-25 | 2019-09-27 | 浪潮软件股份有限公司 | 一种基于Redis缓存技术实现商品信息缓存加载的方法 |
CN110990746A (zh) * | 2019-12-06 | 2020-04-10 | 北京同邦卓益科技有限公司 | 页面加载方法、装置、系统、存储介质、电子设备 |
CN111124255A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 数据存储方法、电子设备和计算机程序产品 |
CN111506844A (zh) * | 2020-04-08 | 2020-08-07 | 聚好看科技股份有限公司 | 页面处理方法、设备及计算机存储介质 |
CN111638922A (zh) * | 2020-06-04 | 2020-09-08 | 北京字节跳动网络技术有限公司 | 一种页面资源加载的方法及装置 |
CN112115397A (zh) * | 2020-09-25 | 2020-12-22 | 企查查科技有限公司 | 动态页面渲染方法及渲染系统 |
CN112395533A (zh) * | 2020-11-18 | 2021-02-23 | 北京字节跳动网络技术有限公司 | 一种页面加载方法、装置、计算机设备及可读存储介质 |
CN112749178A (zh) * | 2019-10-31 | 2021-05-04 | 华为技术有限公司 | 一种保证数据一致性的方法及相关设备 |
CN112948439A (zh) * | 2021-03-05 | 2021-06-11 | 北京北大千方科技有限公司 | 一种实时处理gis数据查询请求方法、装置、介质及设备 |
-
2021
- 2021-07-06 CN CN202110762800.7A patent/CN113448649B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897024A (zh) * | 2015-12-18 | 2017-06-27 | 北京国双科技有限公司 | 数据写入方法及装置 |
CN108470054A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种数据访问方法及系统 |
CN111124255A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 数据存储方法、电子设备和计算机程序产品 |
CN110149364A (zh) * | 2019-04-15 | 2019-08-20 | 厦门市美亚柏科信息股份有限公司 | 基于数据服务平台提供微服务的方法、装置、存储介质 |
CN110287430A (zh) * | 2019-06-25 | 2019-09-27 | 浪潮软件股份有限公司 | 一种基于Redis缓存技术实现商品信息缓存加载的方法 |
CN112749178A (zh) * | 2019-10-31 | 2021-05-04 | 华为技术有限公司 | 一种保证数据一致性的方法及相关设备 |
CN110990746A (zh) * | 2019-12-06 | 2020-04-10 | 北京同邦卓益科技有限公司 | 页面加载方法、装置、系统、存储介质、电子设备 |
CN111506844A (zh) * | 2020-04-08 | 2020-08-07 | 聚好看科技股份有限公司 | 页面处理方法、设备及计算机存储介质 |
CN111638922A (zh) * | 2020-06-04 | 2020-09-08 | 北京字节跳动网络技术有限公司 | 一种页面资源加载的方法及装置 |
CN112115397A (zh) * | 2020-09-25 | 2020-12-22 | 企查查科技有限公司 | 动态页面渲染方法及渲染系统 |
CN112395533A (zh) * | 2020-11-18 | 2021-02-23 | 北京字节跳动网络技术有限公司 | 一种页面加载方法、装置、计算机设备及可读存储介质 |
CN112948439A (zh) * | 2021-03-05 | 2021-06-11 | 北京北大千方科技有限公司 | 一种实时处理gis数据查询请求方法、装置、介质及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722046A (zh) * | 2022-04-18 | 2022-07-08 | 聚好看科技股份有限公司 | 一种服务器及首页缓存数据分版本生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113448649B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190251143A1 (en) | Web page rendering method and related device | |
US9167054B2 (en) | Remote browsing session management | |
US20100050089A1 (en) | Web browser system of mobile communication terminal, using proxy server | |
US9646254B2 (en) | Predicting next web pages | |
US10116487B2 (en) | Management of interactions with representations of rendered and unprocessed content | |
CN102193953B (zh) | 桌面应用迁移系统和方法 | |
JP4865983B2 (ja) | ネットワークサーバ | |
US20100218077A1 (en) | Modifying a markup language document which includes a clickable image | |
US20130007100A1 (en) | Remote browsing session management | |
US20100268694A1 (en) | System and method for sharing web applications | |
JP7538948B2 (ja) | 画像処理方法及び装置、並びにコンピュータ可読記憶媒体 | |
CN112487763A (zh) | 基于svg的ofd文件在线显示方法、服务器端及系统 | |
CN118276857B (zh) | 低代码页面渲染系统及方法 | |
JP5937207B2 (ja) | 遠隔ブラウジングセッション管理 | |
CN109656670B (zh) | 一种页面渲染方法及装置 | |
CN113448649B (zh) | 一种基于Redis的首页数据加载的服务器及方法 | |
CN111723314B (zh) | 网页展示方法、装置、电子设备及计算机可读存储介质 | |
CN116578795A (zh) | 网页页面的生成方法及装置、存储介质、电子设备 | |
CN115438290A (zh) | 自动分析单页面应用静态资源并预加载的方法及系统 | |
CN113791777A (zh) | 图片显示方法及装置、计算机可读存储介质及电子设备 | |
CN114996609B (zh) | 一种基于浏览器数据库的离线图像缓存方法及系统 | |
CN109324858B (zh) | 网页中显示内容的获取方法和装置 | |
CN116302036A (zh) | 基于微服务的业务参数管理方法、装置、设备及存储介质 | |
WO2024175882A1 (en) | Methods of searching, systems and devices | |
EP4441578A1 (en) | Methods of searching, systems and devices |
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 |