千古兴亡的诗词:Redis的分布存储实现:redis-sharding

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 01:55:43

redis-sharding 是一个由perl写的 Redis 的proxy,使用它,你可以将数据分布存储在多个Redis实例上,而在操作数据时却像只操作一个实例一样。利用它相当于透明地解决了 Redis 单线程无法有效利用多核心服务器的问题。当然,我们更期待官方的cluster方案。

项目地址:https://github.com/kni/redis-sharding

架构:

                              /- Redis (node 1)Client 1 ---                /-- Redis (node 2)Redis Sharding --- Redis (node 3)Client 2 ---                \-- Redis (node 4)\- Redis (node 5)

启动redis-sharding,分别为使用默认host,port与指定host,port的方式:

1            2            3            
 perl redis_sharding.pl                             --nodes=10.1.1.2:6380,10.1.1.3:6380,...            perl redis_sharding.pl                 --port=6379 --nodes=10.1.1.2:6380,10.1.1.3:6380,...            perl redis_sharding.pl --host=10.1.1.1 --port=6379 --nodes=10.1.1.2:6380,10.1.1.3:6380,...

redis-sharding还支持重新切分数据,但这需要暂时停掉proxy,下面是将原来的db 9的数据重新sharding到B1-B5五个实例上:

停掉redis-sharding后再执行:

1            2            
perl resharding.pl --db=9 --from=A1 --nodes=B1,B2,B3,B4,B5            perl resharding.pl --db=9 --from=A2 --nodes=B1,B2,B3,B4,B5

然后再启动新的管理B1-B5的redis-sharding实例即可:

1            
perl redis_sharding.pl --nodes=B1,B2,B3,B4,B5

redis-sharding 是一个由perl写的 Redis 的proxy,使用它,你可以将数据分布存储在多个Redis实例上,而在操作数据时却像只操作一个实例一样。利用它相当于透明地解决了 Redis 单线程无法有效利用多核心服务器的问题。当然,我们更期待官方的cluster方案。

项目地址:https://github.com/kni/redis-sharding

架构:

                              /- Redis (node 1)Client 1 ---                /-- Redis (node 2)Redis Sharding --- Redis (node 3)Client 2 ---                \-- Redis (node 4)\- Redis (node 5)

启动redis-sharding,分别为使用默认host,port与指定host,port的方式:

1            2            3            
 perl redis_sharding.pl                             --nodes=10.1.1.2:6380,10.1.1.3:6380,...            perl redis_sharding.pl                 --port=6379 --nodes=10.1.1.2:6380,10.1.1.3:6380,...            perl redis_sharding.pl --host=10.1.1.1 --port=6379 --nodes=10.1.1.2:6380,10.1.1.3:6380,...

redis-sharding还支持重新切分数据,但这需要暂时停掉proxy,下面是将原来的db 9的数据重新sharding到B1-B5五个实例上:

停掉redis-sharding后再执行:

1            2            
perl resharding.pl --db=9 --from=A1 --nodes=B1,B2,B3,B4,B5            perl resharding.pl --db=9 --from=A2 --nodes=B1,B2,B3,B4,B5

然后再启动新的管理B1-B5的redis-sharding实例即可:

1            
perl redis_sharding.pl --nodes=B1,B2,B3,B4,B5
最先实现存储程序的计算机是什么 用存储过程实现datagrid 的分页 哈尔滨所有的McDonald's分布在哪里? 用VB实现s-des的编程 最先实现存储程序的计算机是_______。 无盘如何实现客户机的下载文件、存储问题? 世界最先实现内部存储程序的计算机是? 世界上首次实现存储程序功能的计算机是? 存储管理在Windows 下是怎么实现的? 指针数组的存储方式实现查找、替换与删除 指针数组的存储方式实现查找、替换与删除 指针数组的存储方式实现查找、替换与删除 谁知道“世界上首次实现存储程序计算机的称为”是什么 介绍下北京Mazda6的4s店分布的具体位置,哪家服务态度好. B/S结构的打印是如何实现? 如何实现“采用数组来存储元素的环形队”(用c++描述) 请问,Excel文件在SQL SERVER2000里的存储和读取问题!(用VB实现) 智能试题库、遗传算法以及要实现含图片信息试题的存储 那位帮忙编一下这道题:二维数组的存储方式实现查找、替换与删除 给变量赋值在计算机中是如何实现的?是不是先清空变量所指存储单元? 存储过程对不对实现ASP网页分页 简述数据结构的逻辑结构和存储结构的区别和联系,他们如何影响算法的设计和实现? 设计一个固定式分区分配的存储管理方案,并模拟实现分区的分配和回收过程。 怎么用堆存储方式实现对串的赋值、比较、求长度、联接、子串定位