CN109522116B - 一种对象关注方法、装置和服务器 - Google Patents
一种对象关注方法、装置和服务器 Download PDFInfo
- Publication number
- CN109522116B CN109522116B CN201811184644.5A CN201811184644A CN109522116B CN 109522116 B CN109522116 B CN 109522116B CN 201811184644 A CN201811184644 A CN 201811184644A CN 109522116 B CN109522116 B CN 109522116B
- Authority
- CN
- China
- Prior art keywords
- attention
- data
- user
- information
- redis
- 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.)
- Active
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种对象关注方法、装置和服务器,该方法和装置应用于即时通信系统,具体为在获取到关注信息并生成关注数据后,是基于redis对关注数据进行存储,鉴于redis本身的小巧灵活,实现了以较小的空间对关注数据进行存储的目的,由于关注数据本身以这种方式存储的灵活性,从而能够以较高的效率实现关注功能。
Description
技术领域
本公开涉及即时通信技术领域,尤其涉及一种对象关注方法、装置和服务器。
背景技术
在目前的即时通信系统中,一般都会设计关注功能,如@功能,以使参与即时通信的某个或某些用户感觉到自己被关注或者被通知,从而及时作出相应的反馈。然而,目前在实现关注功能时所需的存储空间较大,从而造成关注功能的实现效率较低。
发明内容
为克服相关技术中存在的问题,本公开提供一种对象关注方法、装置和服务器。
一方面,提供一种对象关注方法,应用于即时通信系统,所述对象关注方法包括:
响应用户的关注请求,接收用户的关注信息;
根据所述关注信息生成关注数据,所述关注数据包括关注类型和关注对象的id;
基于redis存储所述关注数据。
可选的,所述关注类型包括关注特定对象和关注多个对象。
可选的,所述关注数据的存储结构包括第一预设字节的所述关注类型和第二预设字节的所述id。
可选的,所述存储所述关注数据,包括:
以队列形式存储预设数量的所述关注数据。
可选的,还包括:
在接收到新的关注信息后,将旧有的所述关注数据依次丢弃。
另一方面,提供一种对象关注装置,应用于即时通信系统,所述对象关注装置包括:
请求响应模块,被配置为响应用户的关注请求,接收用户的关注信息;
数据生成模块,被配置为根据所述关注信息生成关注数据,所述关注数据包括关注类型和关注对象的id;
数据存储模块,被配置为基于redis存储所述关注数据。
可选的,所述关注类型包括关注特定对象和关注多个对象。
可选的,所述关注数据的存储结构包括第一预设字节的所述关注类型和第二预设字节的所述id。
可选的,所述数据存储模块被配置为基于redis以队列形式存储预设数量的所述关注数据。
可选的,还包括:
数据挤出模块,被配置为在接收到新的关注信息后,将旧有的所述关注数据依次丢弃。
又一方面,提供一种服务器,应用于即时通信系统,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为用于执行如图1或图2任一项所述的对象关注方法。本公开的实施例提供的技术方案可以包括以下有益效果:在获取到关注信息并生成关注数据后,是基于redis对关注数据进行存储,鉴于redis本身的小巧灵活,实现了以较小的空间对关注数据进行存储的目的,由于关注数据本身以这种方式存储的灵活性,从而能够以较高的效率实现关注功能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种对象关注方法的流程图;
图2是根据一示例性实施例示出的另一种对象关注方法的流程图;
图3是根据一示例性实施例示出的一种对象关注装置的结构框图;
图4是根据一示例性实施例示出的另一种对象关注装置的结构框图;
图5是根据一示例性实施例示出的一种用于对象关注的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种对象关注方法的流程图。
如图1所示,本实施例通过的对象关注方法应用于即时通信系统的服务器,具体包括以下步骤:
S11:接收用户的关注信息。
即当用户通过发送关注请求的方式意图对某个或某些其他用户进行关注时,通过响应该关注请求接收上传的关注信息。该关注信息包括有其希望关注的对象的id,即这里相对其的其他用户的id。
S12:根据关注信息生成关注数据。
在接收到关注信息后个,根据该关注信息生成相应关注数据,其实质是对关注信息进行重新拼接,从而得到关注数据,以便于进一步对该关注数据进行存储。
这里的关注数据包括关注类型和关注对象的id。其中,关注类型包括关注特定对象和关注多个对象,关注特定对象是指关注一个被选定的对象,例如在即时通信交流中@某人;关注多个对象是指关注多个同一类型或者被选定的多个对象,例如@全部人,或者@某群组中的全部人。
关注数据包括前置的关注类型和位于该关注类型后的关注对象的id,例如在某个即时通信系统中,以1个字节存储关注类型,后续则以8个存储关注对象的id。
S13:基于redis存储关注数据。
在生成相应关注数据后,基于redis存储相关关注数据,具体而言是以队列的形式存储相应关注数据。在本申请的一个具体实施方式中,每个session具有5个以队列形式存储的关注数据。
本申请还用于以lua进行多关注数据的存储,基于redis的lua扩展进行多@的设计的主要优点是redis的操作是单线程的,lua脚本在redis中的执行是原子操作,即所有命令的执行期间不会有另外的线程修改相关数据,并且所有操作要么全部生效,一旦中间有异常则全部失败。
基于struct结构的pack和unpack操作可以将基本数据类型序列化和反序列化成我们想要的数据类型,如字节数组或基本数据格式,以供计算和存储使用。
从上述技术方案可以看出,本申请提供了一种对象关注方法,该方法应用于即时通信系统,该方法在获取到关注信息并生成关注数据后,是基于redis对关注数据进行存储,鉴于redis本身的小巧灵活,实现了以较小的空间对关注数据进行存储的目的,由于关注数据本身以这种方式存储的灵活性,从而能够以较高的效率实现关注功能。
另外,如图2所示,本实施例中的对象关注方法还包括如下步骤:
S14:在接到新的关注数据后,将旧有关注数丢弃。
具体来说时在接收到新的关注数据后,将该新的关注数据作为一个元素存入该redis,由于每个session中所存储的元素是有限个数的,因此在接纳新的关注数据的同时,将旧有的一个关注数据挤出该session,从效果上看就是将一个旧有的关注数据予以丢弃。
计算的难点在于,redis中lua的format是动态的,需要用动态拼接类型的方式>i标识数字后面的数值标识字节数,>c标识字符,后面的数字标识字节数,如>i1>i8标识第一个占位符存储一个字节的数字,第二个占位符存储八个字节的数字。
对于第一个@,如>i1>i8用来存储第一个@消息,传入atType和seqid保存即可;对于第二个到第5个,需要用>c(j*9)>i1>i8,其中j为1..2..3..4,即已经存在的@个数直接抽象为字符串的形式,即>i1>i8可以直接用>c9来存储,长度不变,数字也是字符。
如果已经满了又有新的@消息进入队列,则需要做挤出操作,挤出最老的那个@消息,所以从存储结构的最左边挤出9个字节,剩下的内容也按照字符解析,以便于计算。
图3是根据一示例性实施例示出的一种对象关注装置的结构框图。
如图3所示,本实施例通过的对象关注装置应用于即时通信系统的服务器,具体包括请求响应模块10、数据生成模块20和数据存储模块30。
请求响应模块10被配置为接收用户的关注信息。
即当用户通过发送关注请求的方式意图对某个或某些其他用户进行关注时,通过响应该关注请求接收上传的关注信息。该关注信息包括有其希望关注的对象的id,即这里相对其的其他用户的id。
数据生成模块20被配置为根据关注信息生成关注数据。
在接收到关注信息后个,根据该关注信息生成相应关注数据,其实质是对关注信息进行重新拼接,从而得到关注数据,以便于进一步对该关注数据进行存储。
这里的关注数据包括关注类型和关注对象的id。其中,关注类型包括关注特定对象和关注多个对象,关注特定对象是指关注一个被选定的对象,例如在即时通信交流中@某人;关注多个对象是指关注多个同一类型或者被选定的多个对象,例如@全部人,或者@某群组中的全部人。
关注数据包括前置的关注类型和位于该关注类型后的关注对象的id,例如在某个即时通信系统中,以1个字节存储关注类型,后续则以8个存储关注对象的id。
数据存储模块30被配置为基于redis存储关注数据。
在生成相应关注数据后,基于redis存储相关关注数据,具体而言是以队列的形式存储相应关注数据。在本申请的一个具体实施方式中,每个session具有5个以队列形式存储的关注数据。
本申请还用于以lua进行多关注数据的存储,基于redis的lua扩展进行多@的设计的主要优点是redis的操作是单线程的,lua脚本在redis中的执行是原子操作,即所有命令的执行期间不会有另外的线程修改相关数据,并且所有操作要么全部生效,一旦中间有异常则全部失败。
基于struct结构的pack和unpack操作可以将基本数据类型序列化和反序列化成我们想要的数据类型,如字节数组或基本数据格式,以供计算和存储使用。
从上述技术方案可以看出,本申请提供了一种对象关注装置,该装置应用于即时通信系统,该装置在获取到关注信息并生成关注数据后,是基于redis对关注数据进行存储,鉴于redis本身的小巧灵活,实现了以较小的空间对关注数据进行存储的目的,由于关注数据本身以这种方式存储的灵活性,从而能够以较高的效率实现关注功能。
另外,如图4所示,本实施例中的对象关注装置还包括数据挤出模块40。
数据挤出模块40被配置为在接到新的关注数据后,将旧有关注数丢弃。
具体来说时在接收到新的关注数据后,将该新的关注数据作为一个元素存入该redis,由于每个session中所存储的元素是有限个数的,因此在接纳新的关注数据的同时,将旧有的一个关注数据挤出该session,从效果上看就是将一个旧有的关注数据予以丢弃。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请还提供一种计算机程序,该计算机程序应用于即时通信系统的服务器,具体为用于执行如图1或图2所示的步骤。
图5是根据一示例性实施例示出的一种用于对象关注的装置的框图。
例如,装置1900可以被提供为一服务器。参照图5,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行图1或图2所示的对象关注方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种对象关注方法,应用于即时通信系统,其特征在于,所述对象关注方法包括:
在当用户通过发送关注请求的方式期望对某个或某些其他用户进行关注时,响应用户的关注请求,接收用户的关注信息;
根据所述关注信息生成关注数据,其中,根据所述关注信息生成关注数包括:对所述关注信息进行重新拼接,得到所述关注数据;所述关注数据包括关注类型和关注对象的id;其中,所述关注对象的id为用户期望关注的其他用户的id;
基于redis存储所述关注数据。
2.如权利要求1所述的对象关注方法,其特征在于,所述关注类型包括关注特定对象和关注多个对象。
3.如权利要求1所述的对象关注方法,其特征在于,所述关注数据的存储结构包括第一预设字节的所述关注类型和第二预设字节的所述id。
4.如权利要求1所述的对象关注方法,其特征在于,所述存储所述关注数据,包括:
以队列形式存储预设数量的所述关注数据。
5.如权利要求1~4任一项所述的对象关注方法,其特征在于,还包括:
在接收到新的关注信息后,将旧有的所述关注数据依次丢弃。
6.一种对象关注装置,应用于即时通信系统,其特征在于,所述对象关注装置包括:
请求响应模块,被配置为在当用户通过发送关注请求的方式期望对某个或某些其他用户进行关注时,响应用户的关注请求,接收用户的关注信息;
数据生成模块,被配置为根据所述关注信息生成关注数据,其中,根据所述关注信息生成关注数包括:对所述关注信息进行重新拼接,得到所述关注数据;所述关注数据包括关注类型和关注对象的id;其中,所述关注对象的id为用户期望关注的其他用户的id;
数据存储模块,被配置为基于redis存储所述关注数据。
7.如权利要求6所述的对象关注装置,其特征在于,所述关注类型包括关注特定对象和关注多个对象。
8.如权利要求6所述的对象关注装置,其特征在于,所述关注数据的存储结构包括第一预设字节的所述关注类型和第二预设字节的所述id。
9.如权利要求6所述的对象关注装置,其特征在于,所述数据存储模块被配置为基于redis以队列形式存储预设数量的所述关注数据。
10.一种服务器,应用于即时通信系统,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为用于执行如权利要求1~5任一项所述的对象关注方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811184644.5A CN109522116B (zh) | 2018-10-11 | 2018-10-11 | 一种对象关注方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811184644.5A CN109522116B (zh) | 2018-10-11 | 2018-10-11 | 一种对象关注方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522116A CN109522116A (zh) | 2019-03-26 |
CN109522116B true CN109522116B (zh) | 2020-11-10 |
Family
ID=65771869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811184644.5A Active CN109522116B (zh) | 2018-10-11 | 2018-10-11 | 一种对象关注方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522116B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279515A (zh) * | 2013-05-23 | 2013-09-04 | 微梦创科网络科技(中国)有限公司 | 基于微群的推荐方法及微群推荐装置 |
CN105260475A (zh) * | 2015-10-30 | 2016-01-20 | 努比亚技术有限公司 | 一种数据查找方法、数据存储方法及相应装置 |
CN107040455A (zh) * | 2017-05-27 | 2017-08-11 | 北京思特奇信息技术股份有限公司 | 一种基于redis的即时消息通讯方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808618B (zh) * | 2014-12-31 | 2019-10-22 | 阿里巴巴集团控股有限公司 | Feed数据的存储和查询方法及其装置 |
CN104901869B (zh) * | 2015-05-25 | 2017-09-15 | 南京信息职业技术学院 | 一种在线群组成员互动方法 |
CN106130882B (zh) * | 2016-07-13 | 2019-04-30 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
-
2018
- 2018-10-11 CN CN201811184644.5A patent/CN109522116B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279515A (zh) * | 2013-05-23 | 2013-09-04 | 微梦创科网络科技(中国)有限公司 | 基于微群的推荐方法及微群推荐装置 |
CN105260475A (zh) * | 2015-10-30 | 2016-01-20 | 努比亚技术有限公司 | 一种数据查找方法、数据存储方法及相应装置 |
CN107040455A (zh) * | 2017-05-27 | 2017-08-11 | 北京思特奇信息技术股份有限公司 | 一种基于redis的即时消息通讯方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109522116A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113632078A (zh) | 响应于来自多个客户端的机器学习请求 | |
CN108170538B (zh) | 一种信息处理方法、装置以及电子设备 | |
US11645122B2 (en) | Method, device, and computer program product for managing jobs in processing system | |
CN108965932B (zh) | 一种连麦窗口展示方法及装置 | |
CN111026982A (zh) | 智能合约处理方法、计算机设备及存储介质 | |
US10218775B2 (en) | Methods for servicing web service requests using parallel agile web services and devices thereof | |
CN112579148A (zh) | 基于业务代理的业务消息处理方法、装置及电子设备 | |
CN110781180B (zh) | 一种数据筛选方法和数据筛选装置 | |
CN108337301A (zh) | 应用程序的网络请求处理方法、装置、服务器及存储介质 | |
CN114138325A (zh) | 一种灰度发布方法和装置 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
CN111427899A (zh) | 存储文件的方法、装置、设备和计算机可读介质 | |
US11048555B2 (en) | Method, apparatus, and computer program product for optimizing execution of commands in a distributed system | |
CN111866101A (zh) | 访问请求处理方法及装置、存储介质和电子设备 | |
CN110704536A (zh) | 分布式数据处理方法、装置、系统及电子设备 | |
CN106330504B (zh) | 一种实现应用的方法及业务控制器 | |
CN109522116B (zh) | 一种对象关注方法、装置和服务器 | |
CN116382916A (zh) | 用于云电脑算力集群的资源调度方法、系统及电子设备 | |
CN110134547B (zh) | 一种基于中间件的重复数据删除方法和相关装置 | |
CN113114612B (zh) | 分布式系统调用链的确定方法和装置 | |
CN111400060B (zh) | 设备联动方法、装置、服务器和介质 | |
CN113779018A (zh) | 一种数据处理方法和装置 | |
CN112988806A (zh) | 一种数据处理的方法及装置 | |
CN113852840B (zh) | 视频渲染方法、装置、电子设备以及存储介质 | |
CN110351105B (zh) | 一种抽样配置方法及装置 |
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 |