一种用于供电服务指挥系统的Redis集群的制作方法

文档序号:20917721发布日期:2020-05-29 13:44阅读:275来源:国知局
一种用于供电服务指挥系统的Redis集群的制作方法

本发明涉及缓存技术领域,具体涉及一种用于供电服务指挥系统的redis集群。



背景技术:

随着供电服务指挥系统数据量的增多,redis不论作为数据存储或是缓存,它的数据量也会逐渐增多,虽然redis的速度非常可观,但随着其中的数据量的庞大,并且仅仅在一个设备或是一个redis实例中,其存取速度也会大打折扣,所以我们需要在不同的设备或服务器上,搭建多个redis实例仓库,将原来的redis的所有的keys分发到各个服务器的redis上,这就是现在所谓的redis集群(rediscluster)。



技术实现要素:

有鉴于此,本发明的目的在于提供一种用于供电服务指挥系统的redis集群,能提供一种可靠的数据缓存,极大的提高系统的访问速度,从而提高供电服务指挥系统用户的体验感。

为实现上述目的,本发明采用如下技术方案:

一种用于供电服务指挥系统的redis集群,所述供电服务指挥系统在指挥监控、配网监测、配网运营和客户服务中主要数据查询采用rediscluster;所述rediscluster将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

进一步的,所述rediscluster支持简单的key-value类型的数据,同时还提供list,set,zset,hash数据结构的存储。

进一步的,所述rediscluster支持数据的备份,即master-slave模式的数据备份。

进一步的,所述系统支持二进制案例的strings,lists,hashes,sets及orderedsets数据类型操作。

进一步的,所述系统设置的主要集群方案包括客户端分片、基于代理的分片和路由查询。

进一步的,所述rediscluster基于smartclient和无中心的设计,client按key的哈希将请求直接发送到对应的节点;没有使用一致性hash,而是引入了虚拟槽的概念;rediscluster有16384个虚拟槽,每个key通过crc16校验后对16384取模来决定放置哪个槽;集群的每个节点负责一部分hash槽。

本发明与现有技术相比具有以下有益效果:

本发明查询速度非常可观,可以搭建多个实例仓库减轻系统的负载压力。可靠性良好,当系统重启或进行恢复时数据可以自动加载进缓存中。

附图说明

图1是本发明一实施例中rediscluster示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

请参照图1,本发明提供一种用于供电服务指挥系统的redis集群,所述供电服务指挥系统在指挥监控、配网监测、配网运营和客户服务中主要数据查询采用rediscluster;所述rediscluster将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

在本实施例中,所述rediscluster支持简单的key-value类型的数据,同时还提供list,set,zset,hash数据结构的存储。所述rediscluster支持数据的备份,即master-slave模式的数据备份。

在本实施例中,所述系统支持二进制案例的strings,lists,hashes,sets及orderedsets数据类型操作。所述系统设置的主要集群方案包括客户端分片、基于代理的分片和路由查询。

在本实施例中,所述rediscluster基于smartclient和无中心的设计,client按key的哈希将请求直接发送到对应的节点;没有使用一致性hash,而是引入了虚拟槽的概念;rediscluster有16384个虚拟槽,每个key通过crc16校验后对16384取模来决定放置哪个槽;集群的每个节点负责一部分hash槽。

在实施例中,每个主节点处理各自的数据,提供读写能力,从节点异步复制主节点的数据。假设给每个redis实例分配了8g的最大内存,总的数据容量大小为24g(如果想继续扩充数据容量,继续加主节点)。单个redis实例的最大内存不建议超过10g。sentinel是一个分布式系统,可以在一个架构中运行多个sentinel进程,这些进程使用流言协议(gossipprotocols)来接收关于rdis主服务器是否下线的信息,并使用投票协议(agreementprotocols)来决定是否执行自动故障迁移,以及选举哪个从服务器成为新的主服务器。sentinel服务通过ping命令来确认监控的服务器是否正常,当足够多数量的sentinel都确认监控的同一服务器停止服务了(主观下线),则判定此服务器停止服务。

实施例1:redisserver1、redisserver2、redisserver3分别是供电服务指挥系统的集群服务器;

实施例:在使用redis集群时:

1)key批量操作对系统的支持有限。如mset、mget,系统目前只支持具有相同slot值的

key执行批量操作。对于映射为不同slot值的key由于执行mget、mget等操作可能存在于多个节点上因此不被支持。

2)key事务操作支持有限。同理只支持多key在同一节点上的事务操

作,当多个key分布在不同的节点上时无法使用事务功能。

3)key作为数据分区的最小粒度,因此不能将一个大的键值对象如

hash、list等映射到不同的节点。

4)不支持多数据库空间。单机下的redis可以支持16个数据库,集群模

式下只能使用一个数据库空间,即db0。

5)复制结构只支持一层,从节点只能复制主节点,不支持嵌套树状复

制结构。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。



技术特征:

1.一种用于供电服务指挥系统的redis集群,其特征在于:所述供电服务指挥系统在指挥监控、配网监测、配网运营和客户服务中主要数据查询采用rediscluster;所述rediscluster将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.根据权利要求1所述的用于供电服务指挥系统的redis集群,其特征在于:所述rediscluster支持简单的key-value类型的数据,同时还提供list,set,zset,hash数据结构的存储。

3.根据权利要求1所述的一种用于供电服务指挥系统的redis集群,其特征在于:所述rediscluster支持数据的备份,即master-slave模式的数据备份。

4.根据权利要求1所述的一种用于供电服务指挥系统的redis集群,其特征在于:所述系统支持二进制案例的strings,lists,hashes,sets及orderedsets数据类型操作。

5.根据权利要求1所述的一种用于供电服务指挥系统的redis集群,其特征在于:所述系统设置的主要集群方案包括客户端分片、基于代理的分片和路由查询。

6.根据权利要求1所述的一种用于供电服务指挥系统的redis集群,其特征在于:所述rediscluster基于smartclient和无中心的设计,client按key的哈希将请求直接发送到对应的节点;没有使用一致性hash,而是引入了虚拟槽的概念;rediscluster有16384个虚拟槽,每个key通过crc16校验后对16384取模来决定放置哪个槽;集群的每个节点负责一部分hash槽。


技术总结
本发明涉及一种用于供电服务指挥系统的Redis集群,所述供电服务指挥系统在指挥监控、配网监测、配网运营和客户服务中主要数据查询采用Rediscluster;所述Rediscluster将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。本发明采用Redis Cluster,不存在所谓的中心节点或者代理节点,每个节点都有保存数据和整个集群的状态,也就是说每个节点都会保存其他节点的信息,并且定时会给其他节点发送心跳,能够及时感知集群中的节点。

技术研发人员:蒋鑫;郑蔚涛;陈严纾;杨启帆;蔡宇翔
受保护的技术使用者:国网福建省电力有限公司;国网福建省电力有限公司信息通信分公司
技术研发日:2020.01.09
技术公布日:2020.05.29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1