掌桥专利:专业的专利平台
掌桥专利
首页

基于Redis的智能推送服务的方法、装置及计算机设备

文献发布时间:2023-06-19 11:22:42


基于Redis的智能推送服务的方法、装置及计算机设备

技术领域

本发明涉及数据分析技术领域,尤其涉及一种基于Redis的智能推送服务的方法、装置及计算机设备。

背景技术

推送服务是基于推送技术发展而出现的一种新型服务,它运用推送技术来实现个性化的主动信息服务,即推送服务是传统定题服务在网络环境下的一种再现,以改变了人类获取信息的方式。现有技术中的推送服务中当用户具有某种需求需要进行查询时,服务商往往采用狂轰滥炸的方式对用户进行推送,且推送的精确度不高,进而导致推送服务的效果降低,无法达到预期的目的。

发明内容

本发明实施例提供了一种基于Redis的智能推送服务的方法、装置及计算机设备,旨在解决相关技术中的推送服务的精确度不高的问题。

第一方面,本发明实施例提供了一种基于Redis的智能推送服务的方法,其包括:

若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;

根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;

根据所述查询半径计算所述当前区域的Geohash网格的等级;

根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;

根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;

根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

第二方面,本发明实施例提供了一种基于Redis的智能推送服务的装置,其包括:

接收单元,用于若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;

第一编码单元,用于根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;

计算单元,用于根据所述查询半径计算所述当前区域的Geohash网格的等级;

第一获取单元,用于根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;

第二获取单元,用于根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;

推送单元,用于根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

第三方面,本发明实施例又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于Redis的智能推送服务的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的基于Redis的智能推送服务的方法。

本发明实施例提供了一种基于Redis的智能推送服务的方法、装置及计算机设备,通过接收用户对当前区域的查询请求并获取查询半径;对用户当前位置的经纬度坐标进行Geohash编码以得到经纬度坐标的Geohash值,通过查询半径计算当前区域的Geohash网格的等级并从Redis Geo的位置集合中获取当前区域的Geohash网格;根据经纬度坐标的Geohash值从当前区域的Geohash网格中获取与用户相匹配的目标用户;根据目标用户向用户推送与查询请求相匹配的服务信息。通过上述方法可获取与用户相匹配的目标用户,进而通过目标用户来对用户进行智能推送服务,提高了推送服务的精确度,改善了服务质量。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于Redis的智能推送服务的方法的流程示意图;

图2为本发明实施例提供的基于Redis的智能推送服务的方法的应用场景示意图;

图3为本发明实施例提供的基于Redis的智能推送服务的方法的子流程示意图;

图4为本发明实施例提供的基于Redis的智能推送服务的方法的另一子流程示意图;

图5为本发明实施例提供的基于Redis的智能推送服务的方法的另一子流程示意图;

图6为本发明实施例提供的基于Redis的智能推送服务的方法的另一子流程示意图;

图7为本发明实施例提供的基于Redis的智能推送服务的方法的另一子流程示意图;

图8为本发明实施例提供的基于Redis的智能推送服务的方法的另一子流程示意图;

图9为本发明实施例提供的基于Redis的智能推送服务的装置的示意性框图;

图10为本发明实施例提供的基于Redis的智能推送服务的装置的子单元示意性框图;

图11为本发明实施例提供的基于Redis的智能推送服务的装置的子单元示意性框图

图12为本发明实施例提供的基于Redis的智能推送服务的装置的子单元示意性框图;

图13为本发明实施例提供的基于Redis的智能推送服务的装置的子单元示意性框图;

图14为本发明实施例提供的基于Redis的智能推送服务的装置的子单元示意性框图;

图15为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1为本发明实施例提供的基于Redis的智能推送服务的方法的流程示意图;图2为本发明实施例提供的基于Redis的智能推送服务的方法的应用场景示意图。该基于Redis的智能推送服务的方法应用于服务器10中,该方法中的服务器10接收到用户终端20向服务器10发送的相关指令后,服务器10对该指令进行解析以获取与该用户相匹配的目标用户并根据目标用户对所述进行推送服务,其中用户终端20为具备定位功能的移动终端,服务器10为具备与用户终端20进行数据传输和接收功能的设备。

如图1所示,该方法包括步骤S110~S160。

S110、若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径。

具体的,所述查询请求为所述用户在用户终端20中向服务器10发送查询当前区域中与所述用户相匹配的目标用户的指令信息,所述用户在用户终端20中输入查询半径的数据信息后,终端便可根据所述查询半径的数据信息向服务器发送查询所述当前区域中与所述用户相匹配的目标用户的指令信息,因此,通过所述查询请求便可获取所述用户在当前区域输入的查询半径。

S120、根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值。

具体的,所述编码规则为服务器根据所述用户当前位置的经纬度坐标进行Geohash编码的规则信息,其中Geohash编码为一种地址编码方法,通过Geohash编码可将二维的空间经纬度数据编码成字符串,即所述经纬度坐标的Geohash值通过字符串进行表征。

在其他发明实施例中,如图3所示,步骤S120包括子步骤S121和S122。

S121、根据预设的阈值对所述经纬度坐标进行二进制编码,得到所述经纬度坐标的二进制序列的字符串。

具体的,所述阈值为根据所述经纬度坐标在进行多次二进制编码后,将所述经纬度坐标中的经度分别与当前经度区间中最大经度和最小经度相减后的第一比值或者将所述经纬度坐标中的纬度分别与当前经度区间中最大纬度和最小纬度相减后的第二比值而设定的标准值。在本实施例中,当第一比值或第二比值中任意一个未超过所述阈值,则继续对所述经纬度坐标进行二进制编码,直至第一比值或第二比值中任意一个均超过所述阈值,进而停止对所述经纬度坐标进行编码,然后将所述经纬度坐标中经度二进制编码后的字符串与纬度二进制编码后的字符串进行组合,从而得到所述经纬度坐标的二进制序列的字符串,其中所述经纬度坐标的二进制序列的字符串的偶数位放经度二进制编码后的字符,奇数位放纬度二进制编码后的字符。

S122、根据Base32编码表对所述经纬度坐标的二进制序列的字符串进行编码,得到所述经纬度坐标的Geohash值。

具体的,Base32编码用于将二进制数据编码成可见的字符串,其编码规则是:任意给定一个二进制数据,以5个位(bit)为一组进行切分,对切分而成的每个组进行编码得到1个可见字符。在本实施例中,通过所述Base32编码表对所述经纬度坐标的二进制序列的字符串进行编码,便可得到所述经纬度坐标的Geohash值。

在其他发明实施例中,如图4所示,步骤S120之前,还包括步骤S120a和S120b。

S120a、根据所述查询请求获取所述用户的网络定位和GPS定位。

具体的,所述网络定位用于通过网络数据的传输来获取所述用户当前位置的经纬度坐标,所述GPS定位用于从所述用户的用户终端20中获取GPS数据并将GPS数据发送至服务器10中以使得服务器10获得所述用户当前位置的经纬度坐标。另外,所述网络定位既可以为所述用户的用户终端20通过WIFI与服务器10进行连接而获得的定位,也可以为所述用户的用户终端20通过基站与服务器10进行数据传输连接而获得的定位。当用户终端20通过WIFI与服务器10进行连接时,服务器10根据所述用户的用户终端20处的WIFI从数据库中获取该WIFI处的经纬度坐标;当所述用户的终端通过基站与服务器10进行连接时,服务器10根据所述用户的用户终端20处的基站从数据库中获取该基站处的经纬度坐标,从而间接获得所述用户当前位置的经纬度坐标,其中,该数据库存在于服务器10中并用于存储WIFI和基站处的位置。

S120b、根据所述网络定位和所述GPS定位确定所述用户当前位置的经纬度坐标。

具体的,服务器首次根据所述网络定位和所述GPS定位中的数据信息进行判断以得到所述网络定位和所述GPS定位是否相同,若所述用户的用户终端20首次网络定位与首次GPS定位相同,则可根据所述网络定位或所述GPS定位来确定所述用户当前位置的经纬度坐标,若所述网络定位和所述GPS定位不相同,则根据所述GPS定位来确定所述用户当前位置的经纬度坐标,所述网络定位虽然在连接互联网后定位速度快,但是外界环境对所述网络定位有较强的干扰性,此时无法准确通过所述网络定位来确定所述用户当前位置的经纬度坐标。

在其他发明实施例中,如图5所示,步骤S120b包括子步骤S120b1和S120b2。

S120b1、判断所述网络定位和所述GPS定位是否一致。

具体的,服务器10根据所述用户在用户终端20中向服务器10发送的查询请求中获取到与所述网络定位的数据信息和所述GPS定位的数据信息,服务器10分别将所述网络定位的数据信息和所述GPS定位的数据信息进行解析后可得到与所述网络定位相对应的经纬度坐标以及与所述GPS定位相对应的经纬度坐标,其中,根据两者坐标中的经纬度之间的误差来确定所述网络定位和所述GPS定位是否一致,当两者坐标中的经纬度之间的误差不超过(0.05,0.05)便可确定所述网络定位和所述GPS定位一致,当两者坐标中的经纬度之间的误差超过(0.05,0.05)时,则可确定所述网络定位和所述GPS定位不一致。

S120b2、若所述网络定位和所述GPS定位不一致,根据所述GPS定位确定所述用户当前位置的经纬度坐标。

具体的,网络定位相对于GPS定位速度快,所述用户在用户终端20只需要联网便可瞬间定位,而GPS定位反应速度慢,所述用户在用户终端20在进行GPS定位时所花费的时间要长于网络定位,并且当所述用户在用户终端20为移动通讯设备时,所述GPS定位需要耗费移动通讯设备大量的电量,因此根据所述网络定位来确定所述用户当前位置的经纬度坐标。

S130、根据所述查询半径计算所述当前区域的Geohash网格的等级。

具体的,所述查询半径为所述用户在终端中基于所述用户当前位置输入的半径信息,所述当前区域的Geohash网格的等级为符合当前区域最低等级的Geohash网格,通过该Geohash网格可以减少后期搜索量。在本实施例中,通过所述用户当前位置为圆心的区域来计算所述当前区域的Geohash网格的等级。其中,Geohash网格为矩形网格,每一等级的Geohash网格均由比该Geohash网格高一等级的4个Geohash网格组成。每一Geohash网格的Geohash编码均由该Geohash网格的等级所决定,在本实施例中,Geohash网格中最高等级的Geohash网格中无比该最高等级的Geohash网格更高等级的Geohash网格。

在其他发明实施例中,如图6所示,步骤S130包括子步骤S131和S132。

S131、根据所述查询半径从预设的字典表中获取Base32编码后的第一字符串。

具体的,所述字典表为预先制定并用于确定所述查询半径所属的字符串,该字符串为Base32编码后的字符串。所述第一字符串个数与所述当前区域的Geohash网格的Geohash值的字符串的个数相等。例如,所述字典表在指定过程中可以表示为:当所述查询半径为500米时,查询所述字典表中400-600米范围内的字符串为wx4g,则可将该字符串作为所述第一字符串,然后计算该字符串的个数,便可确定所述当前区域的Geohash网格的等级。

S132、根据所述第一字符串的个数确定所述当前区域的Geohash网格的等级。

具体的,通过所述第一字符串的个数便可确定所述当前区域的Geohash网格在Geohash编码过程中进行二进制编码的次数,通过二进制编码的次数便可获取该当前区域的Geohash网格的精确度,进而得到当前区域的Geohash网格的等级。

S140、根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格。

具体的,所述Redis Geo的位置集合中用于存储预先区域位置进行Geohash编码后的所有Geohash网格的集合,该集合中包括所有等级的Geohash网格,通过所述当前区域的Geohash网格的等级便可从所述Redis Geo的位置集合中获取所述当前区域的Geohash网格。其中,Redis GEO主要用于存储地理位置信息,并对存储的信息进行操作,该功能在Redis 3.2版本新增。Redis GEO操作指令如下:Geoadd表示为添加地理位置的坐标;Geopos表示为获取地理位置的坐标;Geodist表示为计算两个位置之间的距离;Georadius表示为根据用户给定的经纬度坐标来获取指定范围内的地理位置集合;Georadiusbymember表示为根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合;Geohash表示为返回一个或多个位置对象的Geohash值。

在其他发明实施例中,如图7所示,步骤S140包括子步骤S141、S142和S143。

S141、根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取多个与所述当前区域的Geohash网格的等级相同的Geohash网格。

具体的,在对预设的区域进行编码时,其中,预设区域包含所述用户当前区域,随着二进制编码的次数的增多,Geohash编码得到的Geohash网格所表示的区域越小,而等级却越高,预设的区域进行Geohash编码后,形成一个倒金字塔结构的Geohash网格,顶层Geohash网格精确度最低,其等级也最低,倒金字塔结构的Geohash网格自上向下精确度和等级逐渐对应升高,因此,通过所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取多个与所述当前区域的Geohash网格的等级相同的Geohash网格。

S142、从所述经纬度坐标的Geohash值中获取与所述第一字符串的个数相等的第二字符串。

具体的,所述经纬度坐标的Geohash值的字符串表示的是所述用户精确地位置信息,因此,所述经纬度坐标的Geohash值的字符串的个数必定大于所述第一字符串的个数,但是由于所述第一字符串的个数可确定所述当前区域的Geohash网格的等级,而所述当前区域的Geohash网格的Geohash值的字符串位于所述经纬度坐标的Geohash值的字符串中最前面,而所述第一字符串个数与所述当前区域的Geohash网格的Geohash值的字符串的个数相等,因此,通过所述第二字符串便可从多个与所述当前区域的Geohash网格的等级相同的Geohash网格中获取所述当前区域的Geohash网格。所述第二字符串为所述当前区域的Geohash网格的标识信息,通过所述第二字符串便可从多个与所述当前区域的Geohash网格的等级相同的Geohash网格中获取所述当前区域的Geohash网格。在本实施例中,所述当前区域的Geohash网格中所述用户的当前位置为所述当前区域的Geohash网格的正中心。

S143、根据所述第二字符串从所述多个与所述当前区域的Geohash网格的等级相同的Geohash网格中获取所述当前区域的Geohash网格。

S150、根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户。

具体的,在确定所述当前区域后,可根据用户的自身的属性信息从所述当前区域的Geohash网格中获取多个与用户属性相同的目标用户,即所述当前区域的Geohash网格中存在多个目标用户,但是每个目标用户与所述用户的距离均不相等,因此需要在多个目标用户中筛选出与所述用户距离最近的目标用户,通过与所述用户距离最近的目标用户对所述用户进行智能推送服务,进而提高推送的精确度和成功率,提高推送服务的质量。

在其他发明实施例中,如图8所示,步骤S150包括子步骤S151和S152。

S151、根据所述经纬度坐标的Geohash值的字符串的个数对所述当前区域的Geohash网格进行处理,得到符合所述经纬度坐标的Geohash网格。

具体的,在获取到所述当前区域的Geohash网格后,由于所述当前区域的Geohash网格为一个倒金字塔结构的Geohash网格,所述当前区域的Geohash网格最底层的精确度远远超过所述经纬度坐标的精确度,因此,通过所述经纬度坐标的Geohash值的字符串的个数将不符合所述经纬度坐标的精确度的部分Geohash网格进行剔除,进而得到符合所述经纬度坐标的Geohash网格。

S152、根据递归算法从符合所述经纬度坐标的Geohash网格中获取所述目标用户。

具体的,所述递归算法为从符合所述经纬度坐标的Geohash网格的最顶层Geohash网格的四个高等级Geohash网格中进行搜索,若四个高等级Geohash网格中不存在与所述用户相匹配的目标用户,即目标用户的位置编码不存在当前Geohash网格中,则从所述四个高等级Geohash网格各自对应的下层四个更高等级Geohash网格中进行查找,从上往下依次查找,直至找到与所述用户距离最近的目标用户。

S160、根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

具体的,在确定与所述用户相匹配的目标用户后,将所述目标用户中与所述用户相关联的信息通过用户终端推送给所述用户。例如,所述用户想购买一种理财产品,通过查询请求查询到的目标用户也购买了该理财产品且购买该理财产品取得了收益,服务器在确定了所述目标用户后,便可将该目标用户取得的收益信息推送给所述用户,即该收益信息为与所述查询请求相匹配的服务信息。

在本发明实施例所提供的基于Redis的智能推送服务的方法中,通过若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;根据所述查询半径计算所述当前区域的Geohash网格的等级;根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。通过上述方法可获取与用户相匹配的目标用户,进而通过目标用户来对用户进行智能推送服务,提高了推送服务的精确度,改善了服务质量。

本发明实施例还提供了一种基于Redis的智能推送服务的装置100,该装置用于执行前述基于Redis的智能推送服务的方法的任一实施例。具体地,请参阅图9,图9是本发明实施例提供的基于Redis的智能推送服务的装置100的示意性框图。

如图9所示,所述的基于Redis的智能推送服务的装置100,该装置包括接收单元110、第一编码单元120、计算单元130、第一获取单元140、第二获取单元150和推送单元160。

接收单元110,用于若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径。

第一编码单元120,用于根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值。

在其他发明实施例中,如图10所示,所述第一编码单元120包括:第二编码单元121和第三编码单元122。

第二编码单元121,用于根据预设的阈值对所述经纬度坐标进行二进制编码,得到所述经纬度坐标的二进制序列的字符串;第三编码单元122,用于根据Base32编码表对所述经纬度坐标的二进制序列的字符串进行编码,得到所述经纬度坐标的Geohash值。

在其他发明实施例中,如图9所示,所述的基于Redis的智能推送服务的装置100还包括:第三获取单元120a和第一确定单元120b。

第三获取单元120a,用于根据所述查询请求获取所述用户的网络定位和GPS定位;第一确定单元120b,用于根据所述网络定位和所述GPS定位确定所述用户当前位置的经纬度坐标。

在其他发明实施例中,如图11所示,所述第一确定单元120b包括:判断单元120b1和第二确定单元120b2。

判断单元120b1,用于判断所述网络定位和所述GPS定位是否一致;第二确定单元120b2,用于若所述网络定位和所述GPS定位不一致,根据所述GPS定位确定所述用户当前位置的经纬度坐标。

计算单元130,用于根据所述查询半径计算所述当前区域的Geohash网格的等级。

在其他发明实施例中,如图12所示,所述计算单元130包括:第四获取单元131和第三确定单元132。

第四获取单元131,用于根据所述查询半径从预设的字典表中获取Base32编码后的第一字符串;第三确定单元132,用于根据所述第一字符串的个数确定所述当前区域的Geohash网格的等级。

第一获取单元140,用于根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格。

在其他发明实施例中,如图13所示,所述第一获取单元140包括:第五获取单元141、第六获取单元142和第七获取单元143。

第五获取单元141,用于根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取多个与所述当前区域的Geohash网格的等级相同的Geohash网格;第六获取单元142,用于从所述经纬度坐标的Geohash值中获取与所述第一字符串的个数相等的第二字符串;第七获取单元143,用于根据所述第二字符串从所述多个与所述当前区域的Geohash网格的等级相同的Geohash网格中获取所述当前区域的Geohash网格。

第二获取单元150,用于根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户。

在其他发明实施例中,如图14所示,所述第二获取单元150包括:处理单元151和第八获取单元152。

处理单元151,用于根据所述经纬度坐标的Geohash值的字符串的个数对所述当前区域的Geohash网格进行处理,得到符合所述经纬度坐标的Geohash网格;第八获取单元152,用于根据递归算法从符合所述经纬度坐标的Geohash网格中获取所述目标用户。

推送单元160,用于根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

本发明实施例所提供的基于Redis的智能推送服务的装置100用于执行上述用于若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;根据所述查询半径计算所述当前区域的Geohash网格的等级;根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于Redis的智能推送服务的装置100和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述基于Redis的智能推送服务的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图15所示的计算机设备上运行。

请参阅图15,图15是本发明实施例提供的计算机设备的示意性框图。

参阅图15,该设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行基于Redis的智能推送服务的方法。

该处理器502用于提供计算和控制能力,支撑整个设备500的运行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行基于Redis的智能推送服务的方法。

该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图15中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的设备500的限定,具体的设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;根据所述查询半径计算所述当前区域的Geohash网格的等级;根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

本领域技术人员可以理解,图15中示出的设备500的实施例并不构成对设备500具体构成的限定,在其他实施例中,设备500可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,设备500可以仅包括存储器及处理器502,在这样的实施例中,存储器及处理器502的结构及功能与图15所示实施例一致,在此不再赘述。

应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器502、数字信号处理器502(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器502可以是微处理器502或者该处理器502也可以是任何常规的处理器502等。

在本发明的另一实施例中提供计算机存储介质。该存储介质可以为非易失性的计算机可读存储介质。该存储介质存储有计算机程序5032,其中计算机程序5032被处理器502执行时实现以下步骤:若接收到用户对当前区域的查询请求,根据所述查询请求获取所述用户对当前区域的查询半径;根据预设的编码规则对所述用户当前位置的经纬度坐标进行Geohash编码,得到所述经纬度坐标的Geohash值;根据所述查询半径计算所述当前区域的Geohash网格的等级;根据所述当前区域的Geohash网格的等级从Redis Geo的位置集合中获取所述当前区域的Geohash网格;根据所述经纬度坐标的Geohash值从所述当前区域的Geohash网格中获取与所述用户相匹配的目标用户;根据所述目标用户向所述用户推送与所述查询请求相匹配的服务信息。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备500(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 基于Redis的智能推送服务的方法、装置及计算机设备
  • 基于POI的实时推送服务的方法、装置、计算机设备
技术分类

06120112900940