redis-sharding – 一個 Redis Proxy
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的方式:
- 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后再執(zhí)行:- 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實例即可:- perl redis_sharding.pl --nodes=B1,B2,B3,B4,B5
復制代碼 |