當請求到來首先由負載均衡服務器處理,把請求轉發到另外的一臺服務器上。html
在conf⽬錄下建立⽂件7000.conf,編輯內容以下node
port 7000 bind 172.16.179.130 daemonize yes pidfile 7000.pid cluster-enabled yes cluster-config-file 7000_node.conf cluster-node-timeout 15000 appendonly yes
port 7001 bind 172.16.179.130 daemonize yes pidfile 7001.pid cluster-enabled yes cluster-config-file 7001_node.conf cluster-node-timeout 15000 appendonly yes
port 7002 bind 172.16.179.130 daemonize yes pidfile 7002.pid cluster-enabled yes cluster-config-file 7002_node.conf cluster-node-timeout 15000 appendonly yes
總結:三個⽂件的配置區別在port、pidfile、cluster-config-file三項python
使⽤配置⽂件啓動redis服務git
redis-server 7000.conf redis-server 7001.conf redis-server 7002.conf
在conf⽬錄下建立⽂件7003.conf,編輯內容以下github
port 7003 bind 172.16.179.131 daemonize yes pidfile 7003.pid cluster-enabled yes cluster-config-file 7003_node.conf cluster-node-timeout 15000 appendonly yes
port 7004 bind 172.16.179.131 daemonize yes pidfile 7004.pid cluster-enabled yes cluster-config-file 7004_node.conf cluster-node-timeout 15000 appendonly yes
port 7005 bind 172.16.179.131 daemonize yes pidfile 7005.pid cluster-enabled yes cluster-config-file 7005_node.conf cluster-node-timeout 15000 appendonly yes
總結:三個⽂件的配置區別在port、pidfile、cluster-config-file三項,同上一臺機器redis
使⽤配置⽂件啓動redis服務算法
redis-server 7003.conf redis-server 7004.conf redis-server 7005.conf
因此說,配置了一個第二個天然就能夠水到渠成了,而後就是建立了ubuntu
將命令複製,這樣能夠在任何⽬錄下調⽤此命令ruby
sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/
安裝ruby環境,由於redis-trib.rb是⽤ruby開發的服務器
sudo apt-get install ruby
在提示信息處輸⼊y,而後回⻋繼續安裝
redis-trib.rb create --replicas 1 172.16.179.130:7000 172.16.179.130:7001 172.16.179.130:7002 172.16.179.131:7003 172.16.179.131:7004 172.16.179.131:7005
執⾏上⾯這個指令在某些機器上可能會報錯,主要緣由是因爲安裝的 ruby 不是最 新版本!
天朝的防⽕牆致使⽆法下載最新版本,因此須要設置 gem 的源
解決辦法以下
-- 先查看⾃⼰的 gem 源是什麼地址 gem source -l -- 若是是https://rubygems.org/ 就須要更換 -- 更換指令爲 gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/ -- 經過 gem 安裝 redis 的相關依賴 sudo gem install redis -- 而後從新執⾏指令
redis-trib.rb create --replicas 1 172.16.179.130:7000 172.16.179.130:7001 172.16.179.130:7002 172.16.179.131:7003 172.16.179.131:7004 172.16.179.131:7005
在172.16.179.131機器上鍊接7002,加參數-c表示鏈接到集羣
redis-cli -h 172.16.179.131 -c -p 7002
寫⼊數據
set name itheima
⾃動跳到了7003服務器,並寫⼊數據成功
安裝包以下
pip install redis-py-cluster
redis-py-cluster源碼地址https://github.com/Grokzen/redis-py-cluster
建立⽂件redis_cluster.py,示例碼以下
from rediscluster import * if __name__ == '__main__': try: # 構建全部的節點,Redis會使⽤CRC16算法,將鍵和值寫到某個節點上 startup_nodes = [ {'host': '192.168.26.128', 'port': '7000'}, {'host': '192.168.26.130', 'port': '7003'}, {'host': '192.168.26.128', 'port': '7001'}, ] # 構建StrictRedisCluster對象 src=StrictRedisCluster(startup_nodes=startup_nodes,decode_responses=True) # 設置鍵爲name、值爲skylark的數據 result=src.set('name','skylark') print(result) # 獲取鍵爲name name = src.get('name') print(name) except Exception as e: print(e)