The embodiment of this application provides a method and device for processing data in the cache. The method includes: parsing the log of the target database by the first process, obtaining the operation record of the target database, encapsulating the operation record synchronously as a message object, and storing the message object to the message queue in real time; reading the message pair in the message queue by the second process. For example, the message object is parsed by the second process, and the operation record is restored; the operation corresponding to the operation record is performed on the designated data object in the cache by the second process, so that the designated data object is synchronized when it is written to the cache from the target database, and the corresponding operation includes insertion, update or deletion. The embodiment of this application provides a method and device for processing data in the cache, which can update the cached data in real time.
【技术实现步骤摘要】
一种处理缓存中数据的方法和装置
本申请涉及数据处理
,尤其涉及一种处理缓存中数据的方法和装置。
技术介绍
在高并发的业务场景下,数据库通常是用户并发访问最薄弱的环节,因此需要进行缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。Redis是开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、键值(英文:Key-Value)数据库。在用户访问数据时,先判断是否有缓存数据,如果有缓存数据,则直接返回缓存数据;如果没有缓存数据,则从数据库中加载数据,并将数据写入缓存,再将该数据返回。基于此,本专利技术的专利技术人发现,如果数据库数据插入新数据,一般会在第一次用户请求时才会同步到缓存中,缓存数据更新存在时延。公开于该
技术介绍
部分的信息仅仅旨在增加对本专利技术的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现思路
本申请实施例的目的是提供一种处理缓存中数据的方法和装置,能够保证目标数据库操作成功后同步更新缓存,提高了数据传输中的一致性。为解决上述技术问题,本申请实施例是通过以下各方面实现的。第一方面,本申请实施例提供了一种处理缓存中数据的方法,包括:通过第一进程解析目标数据库的日志,获得目标数据库的操作记录,并将所述操作记录同步封装为消息对象,并将所述消息对象实时存储至消息队列;通过第二进程读取所述消息队列中的消息对象;通过所述第二进程解析所述消息对象,还原所述操作记录;通过所述第二进程对缓存中的指定数据对象执行与所述操作记录对应的操作,以使所述指定数据对象从所述目 ...
【技术保护点】
1.一种处理缓存中数据的方法,其特征在于,包括:通过第一进程解析目标数据库的日志,获得目标数据库的操作记录,并将所述操作记录同步封装为消息对象,并将所述消息对象实时存储至消息队列;通过第二进程读取所述消息队列中的消息对象;通过所述第二进程解析所述消息对象,还原所述操作记录;通过所述第二进程对缓存中的指定数据对象执行与所述操作记录对应的操作,以使所述指定数据对象从所述目标数据库写入缓存时保持同步,所述对应的操作包括插入、更新或者删除。
【技术特征摘要】
1.一种处理缓存中数据的方法,其特征在于,包括:通过第一进程解析目标数据库的日志,获得目标数据库的操作记录,并将所述操作记录同步封装为消息对象,并将所述消息对象实时存储至消息队列;通过第二进程读取所述消息队列中的消息对象;通过所述第二进程解析所述消息对象,还原所述操作记录;通过所述第二进程对缓存中的指定数据对象执行与所述操作记录对应的操作,以使所述指定数据对象从所述目标数据库写入缓存时保持同步,所述对应的操作包括插入、更新或者删除。2.根据权利要求1所述的方法,其特征在于,还包括:当所述对应的操作成功时,删除所述消息队列中的所述消息对象;当所述对应的操作失败时,在所述消息队列中保留所述消息对象,并再次读取所述消息队列中的所述消息对象。3.根据权利要求1所述的方法,其特征在于,将所述操作记录封装为消息对象,并将所述消息对象发送至消息队列包括:通过生产者Producer进程解析目标数据库的日志获得目标数据库的操作记录,根据操作类型type、字段field和值value将所述操作记录封装为json消息对象,并将所述消息对象发送至消息队列排列在所述消息队列的末尾。4.根据权利要求3所述的方法,其特征在于,所述通过第二进程读取消息队列中的消息对象包括:通过消费者Consumer进程顺序地读取消息队列中的消息对象。5.根据权利要求1所述的方法,其特征在于,所述目标数据库的操作记录包括对目标数据库中的指定对象进行插入、更新或者删除的记录。6.一种...
【专利技术属性】
技术研发人员:蔡智平,李涛,
申请(专利权)人:珠海天燕科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。