本发明涉及缓存技术领域,具体涉及一种用于供电服务指挥系统的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槽。