【技术实现步骤摘要】
基于多级缓存的数据读取和写入方法、系统、设备和介质
本专利技术涉及分布式计算机服务器
,特别涉及基于多级缓存的数据读取和写入方法、系统、设备和介质。
技术介绍
在全球服架构和统一部署的集群的背景下,用户数据(例如,玩家数据)会被多个系统高频地读写访问。对于用户数据的访问,通常用到缓存中间件加后端数据库的结构。其中,中间件一般都是与其他业务分离、单独运行在一台机器或者一个集群上的,这样每次访问用户数据都需要一次网络连接。而且,中间件的数据格式一般与应用(例如,游戏应用)的数据格式不同,这样每次经过中间件来访问用户数据都需要一次数据格式的转换,也就是异构消息重组。这就是说,每次访问用户数据都至少需要一次网络连接和一次异构消息重组,所以使用上述方法来访问用户数据的访问效率不高。特别在高频访问中,由于处理器的处理速度是有限的,例如1秒只能处理1000次访问请求,因此会造成访问请求排队,访问效率就进一步降低。
技术实现思路
本专利技术的目的在于提供基于多级缓存的数据读取和写入方法、系统、设备和介质,解决在现有技术中访问用户数据的访问效率不高的问题,在有限的内存空间中高效、实时地满足多种业务对用户数据的访问。本专利技术的实施方式公开了一种基于多级缓存的数据读取方法,在本地设置有一级缓存和二级缓存,所述一级缓存仅对本地用户可见,所述二级缓存对任意用户可见,在远程设置有三级缓存和数据库,所述方法包括:接收用户的数据读取请求;响应于所述用户的所述数据读取请求,判断所述用户是否为本地用户 ...
【技术保护点】
1.一种基于多级缓存的数据读取方法,其特征在于,在本地设置有一级缓存和二级缓存,所述一级缓存仅对本地用户可见,所述二级缓存对任意用户可见,在远程设置有三级缓存和数据库,所述方法包括:/n接收用户的数据读取请求;/n响应于所述用户的所述数据读取请求,判断所述用户是否为本地用户;/n如果所述用户是本地用户,则从所述一级缓存读取本地用户的用户数据,如果所述一级缓存中不存在本地用户的用户数据,则从所述二级缓存读取本地用户的用户数据,如果所述二级缓存中不存在本地用户的用户数据,则从所述三级缓存读取本地用户的用户数据,以及如果所述三级缓存中不存在本地用户的用户数据,则从所述数据库读取本地用户的用户数据;/n如果所述用户不是本地用户,则从所述二级缓存读取本地用户的用户数据,如果所述二级缓存中不存在本地用户的用户数据,则从所述三级缓存读取本地用户的用户数据,以及如果所述三级缓存中不存在本地用户的用户数据,则从所述数据库读取本地用户的用户数据。/n
【技术特征摘要】
1.一种基于多级缓存的数据读取方法,其特征在于,在本地设置有一级缓存和二级缓存,所述一级缓存仅对本地用户可见,所述二级缓存对任意用户可见,在远程设置有三级缓存和数据库,所述方法包括:
接收用户的数据读取请求;
响应于所述用户的所述数据读取请求,判断所述用户是否为本地用户;
如果所述用户是本地用户,则从所述一级缓存读取本地用户的用户数据,如果所述一级缓存中不存在本地用户的用户数据,则从所述二级缓存读取本地用户的用户数据,如果所述二级缓存中不存在本地用户的用户数据,则从所述三级缓存读取本地用户的用户数据,以及如果所述三级缓存中不存在本地用户的用户数据,则从所述数据库读取本地用户的用户数据;
如果所述用户不是本地用户,则从所述二级缓存读取本地用户的用户数据,如果所述二级缓存中不存在本地用户的用户数据,则从所述三级缓存读取本地用户的用户数据,以及如果所述三级缓存中不存在本地用户的用户数据,则从所述数据库读取本地用户的用户数据。
2.根据权利要求1所述的方法,其特征在于,所述一级缓存和所述二级缓存用于缓存本地用户的用户数据,所述三级缓存用于缓存任意用户的用户数据,所述数据库用于持久化存储所有用户的用户数据。
3.根据权利要求1所述的方法,其特征在于,在本地设置有与本地用户对应的服务进程,所述服务进程包括Erlang进程字典作为所述一级缓存。
4.根据权利要求1所述的方法,其特征在于,在本地设置有与本地用户对应的Erlang公共存储作为所述二级缓存。
5.根据权利要求1所述的方法,其特征在于,采用公共缓存集群作为所述三级缓存,所述公共缓存集群包含多个缓存节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述三级缓存运行期间,判断所述三级缓存中存储的用户数据是否是活跃用户的用户数据;
如果所述三级缓存中存储的用户数据是活跃用户的用户数据,则将该用户的用户标识符添加到活跃用户列表中,否则不将该用户的用户标识符添加到活跃用户列表中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述三级缓存重启之后,对于活跃用户列表中的用户标识符对应的每个用户,从所述数据库向所述三级缓存加载该用户的用户数据。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述三级缓存中存储的用户数据是活跃用户的用户数据,则保留该用户的用户数据,否则删除该用户的用户数据。
9.一种基于多级缓存的数据写入方法,其特征在于,在本地设置有一级缓存和二级缓存,所述一级缓存仅对本地用户可见,所述二级缓存对任意用户可见,在远程设置有三级缓存和数据库,所述方法包括:
接收...
【专利技术属性】
技术研发人员:郭小林,
申请(专利权)人:上海莉莉丝科技股份有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。