CN104199957B - 一种Redis通用代理的实现方法 - Google Patents

一种Redis通用代理的实现方法 Download PDF

Info

Publication number
CN104199957B
CN104199957B CN201410471813.9A CN201410471813A CN104199957B CN 104199957 B CN104199957 B CN 104199957B CN 201410471813 A CN201410471813 A CN 201410471813A CN 104199957 B CN104199957 B CN 104199957B
Authority
CN
China
Prior art keywords
redis
general
proxies
hash
implementation method
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
Application number
CN201410471813.9A
Other languages
English (en)
Other versions
CN104199957A (zh
Inventor
严国涛
张宇峰
彭锦臻
姚键
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Youku Network Technology Beijing Co Ltd
Original Assignee
1Verge Internet Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 1Verge Internet Technology Beijing Co Ltd filed Critical 1Verge Internet Technology Beijing Co Ltd
Priority to CN201410471813.9A priority Critical patent/CN104199957B/zh
Publication of CN104199957A publication Critical patent/CN104199957A/zh
Application granted granted Critical
Publication of CN104199957B publication Critical patent/CN104199957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种Redis通用代理的实现方法,首先采用一致性哈希配置实例组,生成全局句柄时,Redis通用代理会对组内的各个实例生成一个一致性哈希环,然后调用Redis通用代理,在调用中,可以配置key的前缀分隔符,只按照前缀部分进行一致性hash,或者直接采用实例名调用实例,在程序结束时,释放全局句柄。并且本发明的Redis通用代理可以配合sentinel功能,在代理端实现主从切换,在发生故障切换时通过info命令主动探测新的主实例,主从切换完成后,会与新的主进行通信。因此,本发明能够对key在集群中的分布进行管理,能够对主从切换后,对新的主进行通信。

Description

一种Redis通用代理的实现方法
技术领域
本申请涉及数据库领域,具体的,涉及一种Redis通用代理的实现方法。
背景技术
Redis是一款开源的、高性能的键-值存储(key-value store)***。Redis的所有键值都存储在内存中,具有很高的单机读写性能。与其他缓存服务器如memcached对比,Redis提供了更加丰富的数据结构。Redis的Value不仅包括字符串(strings)类型,同时它还包括哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。从Redis2.8.9开始还引入了HyperLogLogs数据结构(一种基于概率的计数估算算法)。另外Redis还支持发布/订阅功能,支持lua脚本,以及数据的持久化操作。Redis支持的持久化方式有两种:快照方式(snapshot)以及AOF(追加式操作记录)。
Redis是一个单机***,各个Redis实例之间不会相互通信(主从模式除外)。操作Redis时,需要按照Redis协议规范与Redis服务器进行通信。Redis服务器采用异步网络模型方式,具有很高的性能,能处理大并发的客户端请求。Redis本身自带了一个客户端Hiredis。
在现有技术中,Redis存在如下问题:在一个Redis集群中通常包含多个Redis实例,Redis自带的客户端Hiredis无法提供不同的key与集群中实例的对应关系。并且,Redis从2.8版本开始提供了sentinel功能,当Redis配置了主从模式时,通过sentinel可以进行主从切换,现有的Redis客户端在主从切换之后,无法发现新的主。
Redis的命令无法跨越多个Redis实例,比如Redis的一端lua脚本可能操作多个key,现有的Redis客户端无法保证多个key在同一个Redis实例上。并且,现有的Redis客户端在主从切换之后,无法发现新的主。
发明内容
本发明的目的在于提出一种Redis通用代理的实现方法,能够对key在集群中的分布进行管理,进一步的,能够对主从切换后,对新的主进行通信。
为达此目的,本发明采用以下技术方案:
一种Redis通用代理的实现方法,包括如下步骤:
Redis通用代理时,首先要实现初始化,包括如下步骤1- 3:
步骤1:配置Redis实例组,各个组内的实例采用一致性哈希进行分布;
步骤2:客户端调用Redis通用代理接口,生成一个全局句柄,之后通过该全局句柄执行相应的Redis命令;
步骤3:生成全局句柄时,Redis通用代理会对组内的各个实例生成一个一致性哈希环。
优选地,当需要调用Redis通用代理时,执行如下的步骤4-10:
步骤4: 客户端调用Redis通用代理的接口执行相应的Redis命令,调用接口时传入步骤2中生成的所述全局句柄,以及组名;
步骤5:根据命令参数生成相应的Redis协议格式的报文;
步骤6:按照key中的哈希值,选择哈希环中的Redis实例;
步骤7:Redis通用代理查看连接池中是否有可用的到选定Redis实例的TCP长连接,如果有则使用所述TCP长连接;
步骤8:在TCP长连接上发送Redis命令;
步骤9:收到Redis响应报文后,执行Redis协议解释流程;
步骤10:客户端得到响应命令的返回值。
优选地,在步骤6中,先判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。
进一步优选地,在步骤4中,调用接口时还指定Redis实例名,则在步骤6中,首先判断是否指定Redis实例名,如果是,则直接进入到步骤7,否则,进一步判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。
优选地,Redis进行主从切换时,包括如下步骤101-105:
步骤101:配置Redis实例的主从关系;
步骤102:配置Redis Sentinel监控Redis主实例;
步骤103:当与现在的主实例连接丢失时或无法建立连接时 ,Redis通用代理定期给给从实例发送info命令;
步骤104:在故障发生时,sentinel将某个从实例选为新的主实例;
步骤105:在sentinel完成切换后, Redis通用代理从步骤103中的所述info命令返回的信息中学习到新的主实例,从而连接新的主实例。
优选地,在步骤1中,设置各个实例的权重。并且,在步骤1中,缺省情况时,各个实例的权重相同。
优选地,在步骤7中,如果没有可用的到选定Redis实例的TCP长连接,则建立新的到该Redis实例的TCP长连接,然后执行步骤8。
当结束使用Redis通用代理时,执行步骤11:
步骤11:在程序退出时,释放步骤2得到的所述全局句柄。
因此,在使用Redis通用代理,包括了三个部分,步骤1-3的进程初始化,在进程启动阶段完成;步骤11只需要在进程结束时调用,而每次使用Redis通用代理时,只需要使用步骤4-10。
本发明的Redis通用代理通过一致性hash方式管理key在集群中的分布。并且,本发明的Redis通用代理可以配合sentinel功能,在代理端实现主从切换,在发生故障切换时通过info命令主动探测新的主,主从切换完成后,会与新的主进行通信。并且,Redis通用代理可以配置key的前缀分隔符,只按照前缀部分进行一致性hash。
附图说明
图1 是根据本发明的具体实施例的Redis通用代理的实现方法的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
参见图1,示出了根据本发明的具体实施例的Redis通用代理的实现方法的流程图。
Redis通用代理时,首先要实现运行的初始化,包括如下步骤1-步骤3:
步骤1:配置Redis实例组。配置文件采用json方式,各个组内的实例采用一致性哈希进行分布。
优选地,并可以设置各个实例的权重,缺省情况时,各个实例的权重相同。
步骤2:客户端调用Redis通用代理接口,生成一个全局句柄,之后通过该全局句柄执行相应的Redis命令。
步骤3:生成全局句柄时,Redis通用代理会对组内的各个实例生成一个一致性哈希环。
其中步骤1-3仅仅为进程的初始化,在进程启动阶段完成。
当需要调用Redis通用代理时,执行如下的步骤4-10:
步骤4: 客户端调用Redis通用代理的接口执行相应的Redis命令。调用接口时传入步骤2中生成的所述全局句柄,以及组名;
步骤5:根据命令参数生成相应的Redis协议格式的报文;
步骤6:按照key中的哈希值,选择哈希环中的Redis实例;
步骤7:Redis通用代理查看连接池中是否有可用的到选定Redis实例的TCP长连接,如果有则使用所述TCP长连接;
步骤8:在TCP长连接上发送Redis命令;
步骤9:收到Redis响应报文后,执行Redis协议解释流程。
步骤10:客户端得到响应命令的返回值。
优选地,在步骤7中,如果没有可用的到选定Redis实例的TCP长连接,则建立新的到该Redis实例的TCP长连接,然后执行步骤8。
优选地,在步骤6中,先判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。这样,能够保证前缀相同的部分散列到同一个Redis实例。
进一步优选地,在步骤4中,调用接口时还指定Redis实例名,则在步骤6中,首先判断是否指定Redis实例名,如果是,则直接进入到步骤7,否则,进一步判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。
当结束使用Redis通用代理时,执行步骤11:
步骤11:在程序退出时,释放步骤2得到的所述全局句柄。
因此,在使用Redis通用代理,包括了三个部分,步骤1-3的进程初始化,在进程启动阶段完成;步骤11只需要在进程结束时调用,而每次使用Redis通用代理时,只需要使用步骤4-10。
进一步的,在使用过程中,可能会出现一个主实例,一个或多个从实例,正常情况Redis代理都是连接主实例,但是主实例出现故障时,***会进行切换,把其中某一个从实例升级为主实例,Redis通用代理连接新的主实例,完成主从切换,故障可能在上面的调用过程中发生。
因此,本发明还提供了一种Redis主从切换流程,包括如下步骤101-105:
步骤101:配置Redis实例的主从关系;
步骤102:配置Redis Sentinel监控Redis主实例;
步骤103:当与现在的主实例连接丢失时或无法建立连接时 ,Redis通用代理定期给给从实例发送info命令;
步骤104:在故障发生时,sentinel将某个从实例选为新的主实例;
步骤105:在sentinel完成切换后, Redis通用代理从步骤103中的所述info命令返回的信息中学习到新的主实例,从而连接新的主实例。至此切换完成。
上述的主从切换,可以发生在使用Redis代理的通信过程。
综上,本发明具有如下优点:
1.Redis通用代理可以通过一致性hash方式管理key在集群中的分布,并且可以保证各个实例之间分布的均匀性。如果指定了实例的权重,则各个实例按照权重的比例分配key。
2.Redis通用代理可以配合sentinel功能,在代理端实现主从切换,在发生故障切换时通过info命令主动探测新的主,主从切换完成后,会与新的主进行通信。保证服务的高可用性。虽然Redis提供了快照和AOF方式用于持久化,便于故障恢复。但是这两种方式对性能有影响,而且恢复时间也比主从切换要长。
3.Redis通用代理可以配置key的前缀分隔符,只按照前缀部分进行一致性hash,可以保证某一类的key值散列到同一个Redis实例中,便于lua脚本等需要多个key的运算。
显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

Claims (8)

1.一种Redis通用代理的实现方法,包括如下步骤:
Redis通用代理时,首先要实现初始化,包括如下步骤1-3:
步骤1:配置Redis实例组,各个组内的实例采用一致性哈希进行分布;
步骤2:客户端调用Redis通用代理接口,生成一个全局句柄,之后通过该全局句柄执行相应的Redis命令;
步骤3:生成全局句柄时,Redis通用代理会对组内的各个实例生成一个一致性哈希环;
当需要调用Redis通用代理时,执行如下的步骤4-10:
步骤4:客户端调用Redis通用代理的接口执行相应的Redis命令,调用接口时传入步骤2中生成的所述全局句柄,以及组名;
步骤5:根据命令参数生成相应的Redis协议格式的报文;
步骤6:按照key中的哈希值,选择哈希环中的Redis实例;
步骤7:Redis通用代理查看连接池中是否有可用的到选定Redis实例的TCP长连接,如果有则使用所述TCP长连接;
步骤8:在TCP长连接上发送Redis命令;
步骤9:收到Redis响应报文后,执行Redis协议解释流程;
步骤10:客户端得到响应命令的返回值。
2.根据权利要求1所述的Redis通用代理的实现方法,其特征在于:
在步骤6中,先判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。
3.根据权利要求2所述的Redis通用代理的实现方法,其特征在于:
在步骤4中,调用接口时还指定Redis实例名,则在步骤6中,首先判断是否指定Redis实例名,如果是,则直接进入到步骤7,否则,进一步判断配置文件是否指定了key的前缀分割符,如果是则按key的前缀部分生成hash值,选择hash环中的Redis实例,否则按照完整key生成的hash值,选择hash环中的Redis实例。
4.根据权利要求1-3中任意一项所述的Redis通用代理的实现方法,其特征在于:
Redis进行主从切换时,包括如下步骤101-105:
步骤101:配置Redis实例的主从关系;
步骤102:配置Redis Sentinel监控Redis主实例;
步骤103:当与现在的主实例连接丢失时或无法建立连接时,Redis通用代理定期给从实例发送info命令;
步骤104:在故障发生时,sentinel将某个从实例选为新的主实例;
步骤105:在sentinel完成切换后,Redis通用代理从步骤103中的所述info命令返回的信息中学习到新的主实例,从而连接新的主实例。
5.根据权利要求4所述的Redis通用代理的实现方法,其特征在于:
在步骤1中,设置各个实例的权重。
6.根据权利要求5所述的Redis通用代理的实现方法,其特征在于:
在步骤1中,缺省情况时,各个实例的权重相同。
7.根据权利要求4所述的Redis通用代理的实现方法,其特征在于:
在步骤7中,如果没有可用的到选定Redis实例的TCP长连接,则建立新的到该Redis实例的TCP长连接,然后执行步骤8。
8.根据权利要求5-7中任意一项所述的Redis通用代理的实现方法,其特征在于:
当结束使用Redis通用代理时,执行步骤11:
步骤11:在程序退出时,释放步骤2得到的所述全局句柄。
CN201410471813.9A 2014-09-17 2014-09-17 一种Redis通用代理的实现方法 Active CN104199957B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410471813.9A CN104199957B (zh) 2014-09-17 2014-09-17 一种Redis通用代理的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410471813.9A CN104199957B (zh) 2014-09-17 2014-09-17 一种Redis通用代理的实现方法

Publications (2)

Publication Number Publication Date
CN104199957A CN104199957A (zh) 2014-12-10
CN104199957B true CN104199957B (zh) 2018-03-02

Family

ID=52085250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410471813.9A Active CN104199957B (zh) 2014-09-17 2014-09-17 一种Redis通用代理的实现方法

Country Status (1)

Country Link
CN (1) CN104199957B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516966A (zh) * 2014-12-24 2015-04-15 北京奇虎科技有限公司 一种数据库集群的高可用解决方法和装置
CN104794172B (zh) * 2015-03-31 2018-09-11 北京奇艺世纪科技有限公司 一种数据处理方法和装置
CN105677916A (zh) * 2016-03-02 2016-06-15 浪潮软件集团有限公司 一种关于Redis使用的方法
CN105933408B (zh) * 2016-04-20 2019-08-13 ***股份有限公司 一种Redis通用中间件的实现方法及装置
CN106357449A (zh) * 2016-09-27 2017-01-25 深圳市彬讯科技有限公司 一种zedis分布式缓存方法
CN106210151A (zh) * 2016-09-27 2016-12-07 深圳市彬讯科技有限公司 一种zedis分布式缓存及服务器集群监控方法
CN106559267A (zh) * 2016-11-25 2017-04-05 聚好看科技股份有限公司 Redis的主从切换方法、装置及redis***
CN106789175A (zh) * 2016-11-30 2017-05-31 武汉长江通信智联技术有限公司 一种基于一致性哈希算法进行redis横向扩展的方法
CN107070744A (zh) * 2017-03-22 2017-08-18 上海合志信息技术有限公司 服务器监控方法
CN106941431A (zh) * 2017-03-22 2017-07-11 上海合志信息技术有限公司 服务器监控***
CN107357853B (zh) * 2017-06-28 2020-12-08 广州华多网络科技有限公司 一种redis控制台的操作方法、装置及计算机***
CN108023932A (zh) * 2017-10-26 2018-05-11 康美健康云服务有限公司 一种基于Redis通用代理的实现方法、存储介质及电子设备
CN108491466B (zh) * 2018-03-06 2022-08-30 平安科技(深圳)有限公司 电子装置、访问指令信息获取方法及存储介质
CN110290163B (zh) * 2018-08-28 2022-03-25 新华三技术有限公司 一种数据处理方法及装置
CN109639749B (zh) * 2018-10-16 2021-09-21 平安科技(深圳)有限公司 云桌面的访问方法、装置、设备及存储介质
CN109862075B (zh) * 2018-12-29 2022-05-03 北京奥鹏远程教育中心有限公司 一种Redis服务实例的路由方法
CN111125095B (zh) * 2019-11-26 2023-11-10 北京文渊佳科技有限公司 数据前缀添加的方法、装置、电子设备及介质
CN112887344B (zh) * 2019-11-29 2023-04-07 中盈优创资讯科技有限公司 基于onos控制器集群的链路确定方法及装置
CN112100005B (zh) * 2020-08-20 2022-11-25 紫光云(南京)数字技术有限公司 一种Redis副本集的实现方法及装置
CN113572852A (zh) * 2021-07-29 2021-10-29 上海浦东发展银行股份有限公司 一种redis信息确定方法、装置、设备及存储介质
CN114143196B (zh) * 2021-11-25 2023-07-28 北京百度网讯科技有限公司 实例配置更新方法、装置、设备、存储介质及程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存***及其方法
CN103501237A (zh) * 2013-09-03 2014-01-08 小米科技有限责任公司 设备管理方法、管理平台、设备及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存***及其方法
CN103501237A (zh) * 2013-09-03 2014-01-08 小米科技有限责任公司 设备管理方法、管理平台、设备及***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Redis代理服务Twemproxy;真实的归宿;《CSDN博客》;20130625;第1页第1-6段,第2页第1-9段,配置代码 *
一种Redis 集群管理的设计方案;曾泉匀等;《中国科技论文在线》;20140131;1-11 *
基于redis的分布式缓存***架构研究;邱祝文;《网络安全技术与应用》;20141031;52-54 *

Also Published As

Publication number Publication date
CN104199957A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN104199957B (zh) 一种Redis通用代理的实现方法
CN107465767B (zh) 一种数据同步的方法和***
CN107800565B (zh) 巡检方法、装置、***、计算机设备和存储介质
CN108234170B (zh) 一种服务器集群的监控方法和装置
US20170070582A1 (en) Network entity discovery and service stitching
CN105653425A (zh) 基于复杂事件处理引擎的监控***
JP5605229B2 (ja) アプリケーションサーバ管理システム、アプリケーションサーバ管理方法、管理装置、アプリケーションサーバ、および、コンピュータ・プログラム
US10944655B2 (en) Data verification based upgrades in time series system
US9654995B2 (en) Method, device, and systems for managing access points controlled by an access point controller
WO2021129008A1 (zh) 服务调用方法、装置、设备及介质
CN103701583B (zh) 加密处理装置及方法
CN109656688B (zh) 一种实现分布式业务规则的方法、***和服务器
WO2017008578A1 (zh) 网络功能虚拟化架构中数据检查的方法和装置
CN112202746B (zh) Rpc成员信息获取方法、装置、电子设备和存储介质
EP3172682B1 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
CN110166562B (zh) 数据同步的方法、装置、存储介质和电子设备
CN112416969B (zh) 分布式数据库中的并行任务调度***
CN110138753B (zh) 分布式消息服务***、方法、设备及计算机可读存储介质
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
WO2020078381A1 (zh) 数据汇聚方法、装置、设备、存储介质和***
US9515886B2 (en) Rule set orchestration processing method and apparatus, and cluster data system
CN111897643A (zh) 线程池配置***、方法、装置和存储介质
US8886913B2 (en) Apparatus and method for identifier management
CN110851186B (zh) 网络设备重启的方法、装置、电子设备及可读存储介质
CN107203437A (zh) 防止内存数据丢失的方法、装置和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee after: Youku network technology (Beijing) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: 1VERGE INTERNET TECHNOLOGY (BEIJING) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200319

Address after: 310026 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: Youku network technology (Beijing) Co.,Ltd.