CN109347936A - Redis代理客户端的实现方法、系统、存储介质及电子设备 - Google Patents

Redis代理客户端的实现方法、系统、存储介质及电子设备 Download PDF

Info

Publication number
CN109347936A
CN109347936A CN201811159956.0A CN201811159956A CN109347936A CN 109347936 A CN109347936 A CN 109347936A CN 201811159956 A CN201811159956 A CN 201811159956A CN 109347936 A CN109347936 A CN 109347936A
Authority
CN
China
Prior art keywords
client
redis
proxy server
agent
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.)
Granted
Application number
CN201811159956.0A
Other languages
English (en)
Other versions
CN109347936B (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.)
Manbang Information Technology Co ltd
Original Assignee
Jiangsu Manyun Software Technology 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 Jiangsu Manyun Software Technology Co Ltd filed Critical Jiangsu Manyun Software Technology Co Ltd
Priority to CN201811159956.0A priority Critical patent/CN109347936B/zh
Publication of CN109347936A publication Critical patent/CN109347936A/zh
Application granted granted Critical
Publication of CN109347936B publication Critical patent/CN109347936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities

Abstract

本发明提供一种Redis代理客户端的实现方法、系统、存储介质及电子设备,所述实现方法包括:客户端调用Redis命令;根据预设流量比例,确定该客户端访问第一对象或第二对象;若确定该客户端访问第一对象,则该客户端根据所述Redis命令访问原生Redis数据库;若确定该客户端访问第二对象,则该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。本发明可以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis代理服务器的动态扩容。当代理服务器出现故障时,可以熔断该机器,将失败降至最低。

Description

Redis代理客户端的实现方法、系统、存储介质及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种Redis代理客户端的实现方法、系统、存储介质及电子设备。
背景技术
Redis是开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据。现有的codis(分布式的Redis解决方案)客户端的实现比较简单,只是做了简单的负载均衡。codis通过1024个槽进行rehash(对hash表的扩展收缩)从而可以平滑扩容缩容、避免单点故障和单点性能不足(高可用)、有图形界面、服务端操作对客户端透明、可以轻松将twemproxy(redis代理proxy)迁移到codis。但codis的瑕疵在于,需要更改redis的源代码(为了加入slot信息),所以codis启动的是codis服务器而不是redis服务器,也即,codis的接入应用只能使用新的redis。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种Redis代理客户端的实现方法、系统、存储介质及电子设备,以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis代理服务器的动态扩容。
根据本发明的一方面,提供一种Redis代理客户端的实现方法,它包括:
客户端调用Redis命令;
根据预设流量比例,确定该客户端访问第一对象或第二对象;
若确定该客户端访问第一对象,则该客户端根据所述Redis命令访问原生Redis数据库;
若确定该客户端访问第二对象,则该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
在本发明的一具体实施方式中,所述客户端调用Redis命令之前还包括:
初始化所述客户端:
获取配置信息
根据所述配置信息设置负载均衡策略;
根据所述配置信息初始化资源池并缓存代理服务器的代理连接。
在本发明的一具体实施方式中,所述该客户端从一资源池中确定可用代理连接包括:
根据所述负载均衡策略及所述资源池中各代理服务器的资源状态,从所述资源池中确定可用代理连接。
在本发明的一具体实施方式中,所述客户端调用Redis命令之前还包括:
所述代理服务器根据所述配置信息与原生Redis数据库进行预热连接。
在本发明的一具体实施方式中,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
将所述Redis命令封装为熔断控制命令,并根据所述熔断控制命令及所述所确定的可用代理连接访问代理服务器。
在本发明的一具体实施方式中,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器之后还包括:
当所连接的代理服务器故障时,熔断该代理服务器与所述客户端的连接,并将所述代理服务器的代理连接自所述资源池中移出。
在本发明的一具体实施方式中,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
当所确定的代理服务器接受的并发客户端访问数量大于等于预设阈值时,所述客户端接受由所确定的代理服务器发送的拒绝连接消息。
在本发明的一具体实施方式中,通过一监控系统对各客户端访问原生Redis数据库及代理服务器的命令统计。
根据本发明的另一方面,提供一种Redis代理客户端的实现系统,它包括:
客户端模块,用于调用Redis命令;
配置模块,提供客户端的配置信息;
代理服务器,用于访问原生Redis数据库;
资源池,用于提供代理服务器的连接资源;以及
控制模块,用于:
根据预设流量比例,确定该客户端访问第一对象或第二对象;
若确定该客户端访问第一对象,则使该客户端根据所述Redis命令访问原生Redis数据库;
若确定该客户端访问第二对象,则使该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且使该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
根据本发明的又一方面,提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。
根据本发明的又一方面,提供一种电子设备。所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。
本发明可以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis代理服务器的动态扩容。当代理服务器出现故障时,可以熔断该机器,将失败降至最低。当客户端并发量太大时也可以限制并发的数量,来保护代理服务器,最大力度的监控并且保护应用,最小成本的使用此客户端。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例中Redis代理客户端的实现方法的流程图。
图2是本发明另一实施例中Redis代理客户端的实现方法的流程图。
图3是本发明一实施例中Redis代理客户端的实现系统的结构示意图。
图4是本发明一实施例中计算机可读存储介质的结构示意图以及
图5是本发明一实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了解决现有技术的不足,提高应用在使用和迁移过程中的稳定性和可靠性,实现Redis代理服务器的动态扩容,本发明提供一种Redis代理客户端的实现方法、系统、存储介质及电子设备。图1是本发明一实施例中Redis代理客户端的实现方法的流程图。图2是本发明另一实施例中Redis代理客户端的实现方法的流程图。图3是本发明一实施例中Redis代理客户端的实现系统的结构示意图。图4是本发明一实施例中计算机可读存储介质的结构示意图以及图5是本发明一实施例中电子设备的结构示意图。根据本发明的一方面,提供一种Redis代理客户端的实现方法,如图1所示,该Redis代理客户端的实现方法包括:
S210、客户端调用Redis命令。
S220、根据预设流量比例,确定该客户端访问第一对象或第二对象。
S230、若确定该客户端访问第一对象,则该客户端根据所述Redis命令访问原生Redis数据库。
S240、若确定该客户端访问第二对象,则该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
可选地,上述步骤S240所述该客户端从一资源池中确定可用代理连接包括:根据所述负载均衡策略及所述资源池中各代理服务器的资源状态,从所述资源池中确定可用代理连接。
可选地,上述步骤S240所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
将所述Redis命令封装为熔断控制命令,并根据所述熔断控制命令及所述所确定的可用代理连接访问代理服务器。
可选地,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器之后还包括:
当所连接的代理服务器故障时,熔断该代理服务器与所述客户端的连接,并将所述代理服务器的代理连接自所述资源池中移出。
可选地,上述步骤S240所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
当所确定的代理服务器接受的并发客户端访问数量大于等于预设阈值时,所述客户端接受由所确定的代理服务器发送的拒绝连接消息。
redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached(高性能的分布式内存对象缓存系统)一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。Redis支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
本发明主要用于应用从已有的redis集群使用迁移到redis代理服务的过程中,可以最大力度的监控和保护应用,对于新应用则可以直接使用此客户端的原生实现,可以最方便的使用redis。本发明可以方便redis代理的统一接入,在基础redis命令的基础上添加了灰度测试、负载均衡、redis代理自动发现、redis代理无损下线、配置变更下发、客户端限流熔断、统一打点,redis统一管理等功能。本发明可以提高应用接入过程的稳定性以及可靠性,开发者创建灰测客户端时会提供原生的redis地址,以及业务id。根据后台配置的原生redis与代理服务器的流量比例,客户端会分配相应比例的流量到原生redis和代理服务器上去,同时代理服务器会根据业务ID来转发到对应的redis上去,在使用cat(CentralApplication Tracking)监控系统的基础上,开发者可以持续的关注自己的应用访问redis的具体命令统计情况,在应用的运行过程中,客户端会通过预先设置的负载均衡策略选择代理服务器实现对代理服务器的负载均衡访问,同时redis代理在正常关闭的情况下,客户端通过HTTP长连接关注代理节点变化,先从缓存中移除该代理客户端,并等待所有的连接处理完毕后,在关闭该代理的连接池以实现无损下线,同时新增代理机器,并分配到应用所在的分组时,配置监听也会将最新的配置新增到代理缓存中,以此来动态扩展redis代理,实现在高峰期前动态扩容,当代理机器出现故障时,可以熔断该机器,将失败降至最低,当客户端并发量太大时也可以限制并发的数量,来保护代理服务器,最大力度的监控并且保护应用,最小成本的使用此客户端。
总而言之,本发明可以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis代理服务器的动态扩容。当代理服务器出现故障时,可以熔断该机器,将失败降至最低。当客户端并发量太大时也可以限制并发的数量,来保护代理服务器,最大力度的监控并且保护应用,最小成本的使用此客户端。
如图2所示,在本发明的另一实施例中,Redis代理客户端的实现方法,包括:
S110、初始化所述客户端。
S120、获取配置信息。
S130、根据所述配置信息设置负载均衡策略。
S140、根据所述配置信息初始化资源池并缓存代理服务器的代理连接。
S210、客户端调用Redis命令。
S220、根据预设流量比例,确定该客户端访问第一对象或第二对象。
S230、若确定该客户端访问第一对象,则该客户端根据所述Redis命令访问原生Redis数据库。
S240、若确定该客户端访问第二对象,则该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
可选地,所述客户端调用Redis命令之前还包括:所述代理服务器根据所述配置信息与原生Redis数据库进行预热连接。
可选地,可以通过一监控系统对各客户端访问原生Redis数据库及代理服务器的命令统计。所述监控系统可以选用cat。CAT是一个实时监控系统,它更侧重于Java应用的监控,目前也有其他语言版本(.net),能够跟各种流行的中间件框架集成(MVC框架、RPC框架、数据库框架、缓存框架等),实现对应用各层级的系统运行状况监控。本发明可以方便redis代理的统一接入,在基础redis命令的基础上添加了灰度测试、负载均衡、redis代理自动发现、redis代理无损下线、配置变更下发、客户端限流熔断、统一打点,redis统一管理等功能。
根据本发明的另一方面,提供一种Redis代理客户端的实现系统,图3是本发明一实施例中Redis代理客户端的实现系统的结构示意图。如图3所示,所述Redis代理客户端的实现系统包括:客户端模块201、配置模块202、代理服务器203、资源池204及控制模块205。所述客户端模块201用于调用Redis命令。所述配置模块202提供客户端的配置信息。所述代理服务器203用于访问原生Redis数据库。所述资源池204用于提供代理服务器的连接资源。所述控制模块205用于根据预设流量比例,确定该客户端访问第一对象或第二对象。若确定该客户端访问第一对象,则使该客户端根据所述Redis命令访问原生Redis数据库。若确定该客户端访问第二对象,则使该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且使该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。本发明可以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis代理服务器的动态扩容。当代理服务器出现故障时,可以熔断该机器,将失败降至最低。当客户端并发量太大时也可以限制并发的数量,来保护代理服务器,最大力度的监控并且保护应用,最小成本的使用此客户端。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述Redis代理客户端的实现方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述Redis代理客户端的实现方法描述的根据本发明各种示例性实施方式的步骤。
图4是本发明一实施例中计算机可读存储介质的结构示意图。图4描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品600可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述Redis代理客户端的实现方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图5来描述根据本发明的这种实施方式的电子设备400。图5显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述Redis代理客户端的实现方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图1中所示的步骤。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。
所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述Redis代理客户端的实现方法。
本发明可以提高应用在使用和迁移过程中的稳定性和可靠性,可以实现Redis缓存数据库的动态扩容。当代理服务器出现故障时,可以熔断该机器,将失败降至最低。当客户端并发量太大时也可以限制并发的数量,来保护代理服务器,最大力度的监控并且保护应用,最小成本的使用此客户端。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (11)

1.一种Redis代理客户端的实现方法,其特征在于,包括:
客户端调用Redis命令;
根据预设流量比例,确定该客户端访问第一对象或第二对象;
若确定该客户端访问第一对象,则该客户端根据所述Redis命令访问原生Redis数据库;
若确定该客户端访问第二对象,则该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
2.根据权利要求1所述的Redis代理客户端的实现方法,其特征在于,所述客户端调用Redis命令之前还包括:
初始化所述客户端:
获取配置信息
根据所述配置信息设置负载均衡策略;
根据所述配置信息初始化资源池并缓存代理服务器的代理连接。
3.根据权利要求2所述的Redis代理客户端的实现方法,其特征在于,所述该客户端从一资源池中确定可用代理连接包括:
根据所述负载均衡策略及所述资源池中各代理服务器的资源状态,从所述资源池中确定可用代理连接。
4.根据权利要求2所述的Redis代理客户端的实现方法,其特征在于,所述客户端调用Redis命令之前还包括:
所述客户端根据所述配置信息与代理服务器进行预热连接。
5.根据权利要求1所述的Redis代理客户端的实现方法,其特征在于,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
将所述Redis命令封装为熔断控制命令,并根据所述熔断控制命令及所述所确定的可用代理连接访问代理服务器。
6.根据权利要求5所述的Redis代理客户端的实现方法,其特征在于,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器之后还包括:
当所连接的代理服务器故障时,熔断该代理服务器与所述客户端的连接,并将所述代理服务器的代理连接自所述资源池中移出。
7.根据权利要求1所述的Redis代理客户端的实现方法,其特征在于,所述该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器还包括:
当所确定的代理服务器接受的并发客户端访问数量大于等于预设阈值时,所述客户端接受由所确定的代理服务器发送的拒绝连接消息。
8.根据权利要求1所述的Redis代理客户端的实现方法,其特征在于,通过一监控系统对各客户端访问原生Redis数据库及代理服务器的命令统计。
9.一种Redis代理客户端的实现系统,其特征在于,包括:
客户端模块,用于调用Redis命令;
配置模块,提供客户端的配置信息;
代理服务器,用于访问原生Redis数据库;
资源池,用于提供代理服务器的连接资源;以及
控制模块,用于:
根据预设流量比例,确定该客户端访问第一对象或第二对象;
若确定该客户端访问第一对象,则使该客户端根据所述Redis命令访问原生Redis数据库;
若确定该客户端访问第二对象,则使该客户端从一资源池中确定可用代理连接,所述可用代理连接用于连接代理服务器,并且使该客户端根据所述Redis命令及所述所确定的可用代理连接访问代理服务器,以通过所述代理服务器访问原生Redis数据库。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至8任一项所述的步骤。
11.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至8任一项所述的步骤。
CN201811159956.0A 2018-09-30 2018-09-30 Redis代理客户端的实现方法、系统、存储介质及电子设备 Active CN109347936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811159956.0A CN109347936B (zh) 2018-09-30 2018-09-30 Redis代理客户端的实现方法、系统、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811159956.0A CN109347936B (zh) 2018-09-30 2018-09-30 Redis代理客户端的实现方法、系统、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN109347936A true CN109347936A (zh) 2019-02-15
CN109347936B CN109347936B (zh) 2021-08-24

Family

ID=65307978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811159956.0A Active CN109347936B (zh) 2018-09-30 2018-09-30 Redis代理客户端的实现方法、系统、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN109347936B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851269A (zh) * 2019-10-17 2020-02-28 上海易点时空网络有限公司 用于Linux虚拟服务器负载均衡的优化方法以及装置、设备、存储介质
CN114780643A (zh) * 2022-06-16 2022-07-22 恒生电子股份有限公司 数据同步处理方法、装置、电子设备及可读存储介质
CN115878711A (zh) * 2023-02-28 2023-03-31 新云网科技集团股份有限公司 一种Redis连接池的实现方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601720A (zh) * 2015-01-30 2015-05-06 乐视网信息技术(北京)股份有限公司 一种缓存访问控制方法及装置
CN106161451A (zh) * 2016-07-19 2016-11-23 青松智慧(北京)科技有限公司 防御cc攻击的方法、装置及系统
US20170180496A1 (en) * 2015-12-18 2017-06-22 Bitly, Inc. Systems and methods for analyzing traffic across multiple media channels via encoded links
CN107395559A (zh) * 2017-05-27 2017-11-24 北京五八信息技术有限公司 基于redis的数据处理方法及设备
CN107734004A (zh) * 2017-09-26 2018-02-23 河海大学 一种基于Nginx、Redis的高并发负载均衡系统
CN108123963A (zh) * 2018-01-19 2018-06-05 深圳市易仓科技有限公司 一种跨境电商的api辅助系统及处理方法
CN108494876A (zh) * 2018-04-12 2018-09-04 北京达佳互联信息技术有限公司 实现服务灰度发布的方法、装置、插件设备和代理服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601720A (zh) * 2015-01-30 2015-05-06 乐视网信息技术(北京)股份有限公司 一种缓存访问控制方法及装置
US20170180496A1 (en) * 2015-12-18 2017-06-22 Bitly, Inc. Systems and methods for analyzing traffic across multiple media channels via encoded links
CN106161451A (zh) * 2016-07-19 2016-11-23 青松智慧(北京)科技有限公司 防御cc攻击的方法、装置及系统
CN107395559A (zh) * 2017-05-27 2017-11-24 北京五八信息技术有限公司 基于redis的数据处理方法及设备
CN107734004A (zh) * 2017-09-26 2018-02-23 河海大学 一种基于Nginx、Redis的高并发负载均衡系统
CN108123963A (zh) * 2018-01-19 2018-06-05 深圳市易仓科技有限公司 一种跨境电商的api辅助系统及处理方法
CN108494876A (zh) * 2018-04-12 2018-09-04 北京达佳互联信息技术有限公司 实现服务灰度发布的方法、装置、插件设备和代理服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
REN HAO: "Research on Unified Storage Technology of Multidimensional Historical Data of Substation Based On the Combination of Redis and SSDB", 《 2018 CHINA INTERNATIONAL CONFERENCE ON ELECTRICITY DISTRIBUTION (CICED)》 *
王景佩: "基于Redis的结构化数据缓存系统的设计与实现", 《中国优秀硕士论文全文数据库(电子期刊) 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851269A (zh) * 2019-10-17 2020-02-28 上海易点时空网络有限公司 用于Linux虚拟服务器负载均衡的优化方法以及装置、设备、存储介质
CN114780643A (zh) * 2022-06-16 2022-07-22 恒生电子股份有限公司 数据同步处理方法、装置、电子设备及可读存储介质
CN115878711A (zh) * 2023-02-28 2023-03-31 新云网科技集团股份有限公司 一种Redis连接池的实现方法、装置、设备及介质
CN115878711B (zh) * 2023-02-28 2023-07-21 新云网科技集团股份有限公司 一种Redis连接池的实现方法、装置、设备及介质

Also Published As

Publication number Publication date
CN109347936B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
US10560465B2 (en) Real time anomaly detection for data streams
US10887416B2 (en) Efficient high availability and storage efficiency in a multi-site object storage environment
CN104054316B (zh) 用于对sms中心进行负载平衡和建立虚拟专用网络的系统和方法
US10445197B1 (en) Detecting failover events at secondary nodes
WO2019206296A1 (zh) 用于网关服务器的故障处理方法和装置
CN108536778B (zh) 一种数据应用共享平台及方法
US10097659B1 (en) High performance geographically distributed data storage, retrieval and update
US11277498B2 (en) Method, apparatus and system for processing data
AU2015229864A1 (en) Reducing data volume durability state for block-based storage
US10044837B2 (en) Generation and distribution of named, definable, serialized tokens
US20220286528A1 (en) Data Caching for Cloud Services
CN109542862B (zh) 用于控制文件系统的挂载的方法、装置和系统
CN109347936A (zh) Redis代理客户端的实现方法、系统、存储介质及电子设备
US20170153909A1 (en) Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
CN115517009B (zh) 集群管理方法、集群管理装置、存储介质与电子设备
CN114422343A (zh) 业务配置方法、设备、系统及计算机可读存储介质
CN110990369A (zh) 一种集群部署文件系统的方法、设备以及存储介质
US9648103B2 (en) Non-uniform file access in a distributed file system
US10200301B1 (en) Logical control groups for distributed system resources
US8726069B2 (en) Highly available file system in a directly attached storage
CN108351894B (zh) 具有分布式实体状态的文件系统
US20240143352A1 (en) Unified Management Interface
CN112632022B (zh) 对象存储方法及装置、计算机可读存储介质以及电子设备
US20230409575A1 (en) Database query processing with database clients

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210329

Address after: No.123, Kaifa Avenue, Guiyang Economic and Technological Development Zone, 550000, Guizhou Province

Applicant after: Man Bang Information Consulting Co.,Ltd.

Address before: 210012 3-5 / F, building 4, 170-1 software Avenue, Yuhuatai District, Nanjing City, Jiangsu Province

Applicant before: JIANGSU MANYUN SOFTWARE TECHNOLOGY Co.,Ltd.

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: No.123, Kaifa Avenue, Guiyang Economic and Technological Development Zone, 550000, Guizhou Province

Patentee after: Manbang Information Technology Co.,Ltd.

Address before: No.123, Kaifa Avenue, Guiyang Economic and Technological Development Zone, 550000, Guizhou Province

Patentee before: Man Bang Information Consulting Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190215

Assignee: Nanjing Manyun Cold Chain Technology Co.,Ltd.

Assignor: Manbang Information Technology Co.,Ltd.

Contract record no.: X2023310000142

Denomination of invention: Implementation method, system, storage medium, and electronic device of Redis proxy client

Granted publication date: 20210824

License type: Common License

Record date: 20230802