【轉載請註明出處】:http://www.javashuo.com/article/p-rgzizqqy-go.htmlnode
Redis的官網下載地址是https://redis.io/download,上面有各個發行版本,我選擇的是當前的最新穩定版5.0.4,下載到安裝目錄並編譯出安裝包。git
wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar -zxvf redis-5.0.4.tar.gz cd redis-5.0.4 make make test
測試執行沒有問題以後顯示
github
啓動服務redis
./src/redis-server
客戶端鏈接驗證算法
./src/redis-cli 127.0.0.1:6379> set foo bar OK 127.0.0.1:6379> get foo "bar" 127.0.0.1:6379> exit
建立redis-cluster目錄,而後在redis-cluster下分別建立7001 7002 7003 7004 7005 7006目錄json
mkdir redis-cluster cd redis-cluster mkdir 7001 7002 7003 7004 7005 7006 cd ..
編輯7001的配置文件vim
./redis-cluster/7001/redis.conf
配置文件內容以下segmentfault
bind 127.0.0.1 port 7001 daemonize no pidfile /var/run/redis_7001.pid logfile "./redis-cluster/7001/redis.log" save 900 1 save 300 10 save 60 10000 dir ./redis-cluster/7001/ cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 appendonly yes appendfsync always
這些配置的含義及例子均可以在根目錄redis.conf文件中找到,具體含義能夠閱讀此文件。將編輯好的配置文件複製到其餘節點,修改相應節點的配置後端
cp ./redis-cluster/7001/redis.conf ./redis-cluster/7002/ cp ./redis-cluster/7001/redis.conf ./redis-cluster/7003/ cp ./redis-cluster/7001/redis.conf ./redis-cluster/7004/ cp ./redis-cluster/7001/redis.conf ./redis-cluster/7005/ cp ./redis-cluster/7001/redis.conf ./redis-cluster/7006/ grep 7001 -rl ./redis-cluster/7002 | xargs -t sed -i ".bak" "s/7001/7002/g" #將7002目錄下的文件備份爲xxx.bak,並將文件中的7001替換成7002 # -t是回顯命令 ,-i是直接修改文件內容,「.bak」是備份文件的後綴 #產生的備份文件若是不想要能夠用下面任何一個命令刪除 # find ./redis-cluster -name "*.bak" | xargs rm -f ; # find ./redis-cluster -name "*.bak" -exec rm {} \; grep 7001 -rl ./redis-cluster/7003 | xargs -t sed -i ".bak" "s/7001/7003/g" grep 7001 -rl ./redis-cluster/7004 | xargs -t sed -i ".bak" "s/7001/7004/g" grep 7001 -rl ./redis-cluster/7005 | xargs -t sed -i ".bak" "s/7001/7005/g" grep 7001 -rl ./redis-cluster/7006 | xargs -t sed -i ".bak" "s/7001/7006/g"
分別啓動五個實例服務器
./src/redis-server ./redis-cluster/7001/redis.conf & ./src/redis-server ./redis-cluster/7002/redis.conf & ./src/redis-server ./redis-cluster/7003/redis.conf & ./src/redis-server ./redis-cluster/7004/redis.conf & ./src/redis-server ./redis-cluster/7005/redis.conf & ./src/redis-server ./redis-cluster/7006/redis.conf &
建立redis集羣
./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
爲了後續操做方便,能夠編寫一個啓動與中止的腳本:
啓動腳本 start.sh
#!/bin/sh ./src/redis-server ./redis-cluster/7001/redis.conf & ./src/redis-server ./redis-cluster/7002/redis.conf & ./src/redis-server ./redis-cluster/7003/redis.conf & ./src/redis-server ./redis-cluster/7004/redis.conf & ./src/redis-server ./redis-cluster/7005/redis.conf & ./src/redis-server ./redis-cluster/7006/redis.conf &
中止腳本 stop.sh
#!/bin/sh ./src/redis-cli -p 7001 shutdown ./src/redis-cli -p 7002 shutdown ./src/redis-cli -p 7003 shutdown ./src/redis-cli -p 7004 shutdown ./src/redis-cli -p 7005 shutdown ./src/redis-cli -p 7006 shutdown
給腳本添加執行權限
chmod +x start.sh chmod +x stop.sh
經過隨便一個客戶端查看節點信息
./src/redis-cli -p 7001 cluster nodes
Twemproxy 也叫 nutcraker。是 Twtter 開源的一個 Redis 和 Memcache 代理服務器,主要用於管理 Redis 和 Memcached 集羣,減小與Cache 服務器直接鏈接的數量。
Twemproxy特性:
Twemproxy官網地址是https://github.com/twitter/tw...,在安裝twemproxy 前,須要安裝autoconf,automake,libtool 軟件包,此處再也不說明。
Twemproxy的發佈版本在 https://github.com/twitter/tw...
下載最新版本0.4.1
wget https://github.com/twitter/twemproxy/archive/v0.4.1.tar.gz tar -zxvf v0.4.1.tar.gz cd twemproxy-0.4.1/ autoreconf -fvi ./configure --prefix=/usr/local/twemproxy make sudo make install
編輯配置文件nutcracker.yml
cd /usr/local/twemproxy/ mkdir conf run vim ./conf/nutcracker.yml
這裏只配置了三個master節點做爲測試,具體根據業務須要配置,具體的參數含義在官網有說明https://github.com/twitter/tw...
beta: listen: 127.0.0.1:22122 hash: fnv1a_64 hash_tag: "{}" distribution: ketama auto_eject_hosts: false timeout: 400 redis: true servers: - 127.0.0.1:7004:1 7004 - 127.0.0.1:7005:1 7005 - 127.0.0.1:7006:1 7006
啓動twemproxy
./sbin/nutcracker -t #測試配置文件是否正確 ./sbin/nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/redisproxy.log #指定配置文件路徑、pid路徑、日誌路徑
鏈接twemproxy進行測試
./src/redis-cli -h 127.0.0.1 -p 22122 -c 127.0.0.1:22122> set foo bar -> Redirected to slot [1044] located at 127.0.0.1:7005 OK 127.0.0.1:7005> get foo "bar"
表示成功了,能夠進行讀取,應用代碼中就能夠直接鏈接22122端口使用redis了。
啓動腳本 start.sh
#!/bin/sh ./sbin/nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/redisproxy.log
中止腳本stop.sh
#!/bin/sh sudo killall nutcracker
或者複製twemproxy-0.4.1/scripts/nutcracker.init文件到/usr/local/twemproxy/sbin下,並修改腳本便可。
【轉載請註明出處】:http://www.javashuo.com/article/p-rgzizqqy-go.html