预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114218223A(43)申请公布日2022.03.22(21)申请号202111562647.X(22)申请日2021.12.20(71)申请人乐府互娱(上海)网络科技有限公司地址201100上海市闵行区万源路2138号泓茂中心5楼(72)发明人司靖(74)专利代理机构深圳市创富知识产权代理有限公司44367代理人余文(51)Int.Cl.G06F16/22(2019.01)G06F16/25(2019.01)权利要求书1页说明书6页附图1页(54)发明名称基于Protobuf协议构建Redis数据模型与访问方法(57)摘要本发明涉及数据库开发技术领域,尤其涉及基于Protobuf协议构建Redis数据模型与访问方法,针对当前现有的Redis作为内存数据库,大量的内存占用,提高了服务器成本,且Redis数据访问API比较简单导致访问的代码可读性比较差的问题,现提出如下方案,其中包括以下步骤:S1:定义模型,S2:设置标签标识,S3:人工检验,S4:生成接口,S5:接口读取,本发明的目的是通过使用Protobuf协议定义数据库模型,提升开发人员在使用Redis作为数据库时对数据模型全貌的理解,同时在内部实现中增加对数据的编解码以及压缩过程,减少Redis内存占用,减低服务器成本。CN114218223ACN114218223A权利要求书1/1页1.基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,包括以下步骤:S1:定义模型:使用Protobufmessage定义游戏内对象的数据模型;S2:设置标签标识:通过Protobuf注释形式为message设置自定义标签与主键标识;S3:人工检验:由人工对设置的自定义标签和主键标识进行复查,判断是否定义准确;S4:生成接口:基于message类型、自定义标签与主键标识,生成数据库访问的API接口;S5:接口读取:从Redis中使用hget读取主键值对应的写入数据,并通过数据对比判断是否完成读取。2.根据权利要求1所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,所述S1中,使用Protobufmessage定义游戏内对象的数据模型,并将不同的对象定义为不同的message,其中message内字段表示对象的属性,装备对象对应的message命名为Equipment,字段id,name代表装备的ID与名字。3.根据权利要求1所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,所述S2中,通过Protobuf注释形式为message设置自定义标签与主键标识,其中标签包含该message在Redis中存储类型和名称,messageEquipment的标签为“//$<ROPredis|map|e>”,代表Equipment对象在redis中命名为e,存储类型为哈希,主键标识用来区分相同哈希中保存的不同message实例,messageEquipment中给id字段增加主键标识“//$<ROPunique>”,且所有的装备都存储在同一个hash中,id值将作为区分不同装备的主键值。4.根据权利要求1所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,所述S3中,由人工对设置的自定义标签和主键标识进行复查,判断是否定义准确,并将定义不准确的message进行重新定义。5.根据权利要求1所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,所述S4中,基于message类型、自定义标签与主键标识,生成数据库访问的API接口,其中API接口中写入方法为已知message类型与构成message的全部数据,生成对应的message实例,对实例进行protobuf格式编码生成字节流,字节流长度超过阈值时采用snappy算法对其进行压缩,否则返回之前字节流,在处理后的字节流头部添加元信息,并表示是否为压缩数据,同时将主键值与带有元信息的字节流作为参数使用hset写入Redis。6.根据权利要求5所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,对实例进行protobuf格式编码时,程序自动检查编码后的字节流长度是否超过阈值,超过则使用snappy算法压缩。7.根据权利要求1所述的基于Protobuf协议构建Redis数据模型与访问方法,其特征在于,所述S5中,从API接口中读取的方法为通过已知message类型与主键值,从Redis中使用hget读取主键值对应的写入数据,并根据数据元信息,判断是否需要解压缩,需要解压时使用snappy算法解压,同时将处理后的数据使用Protobuf解码方法