1.環(huán)境準(zhǔn)備
Redis集群最少準(zhǔn)備6個(gè)點(diǎn)倒戏,那樣就可以每一臺(tái)機(jī)器3個(gè)節(jié)點(diǎn),創(chuàng)建出3master和3salve環(huán)境 我是使用一臺(tái)機(jī)器創(chuàng)建 redis版本3.2.0 ? redis cluster搭建集群會(huì)導(dǎo)致salve節(jié)點(diǎn)閑置
2.下載Redis安裝包和解壓縮
進(jìn)入服務(wù)器/usr/local 界面
創(chuàng)建一個(gè)redis的文件夾mkdir redis_cluster
進(jìn)去文件夾 下載redis 安裝包wgethttp://download.redis.io/releases/redis-3.2.0.tar.gz
下載后進(jìn)行解壓?tar -xzf redis-3.2.0.tar.gz
編譯并安裝 make && make install這里需要jemalloc的支持蹂喻,如果報(bào)找不到j(luò)emalloc錯(cuò)誤大概如下:
make[1]: Entering directory `/usr/local/redis_cluster/redis/src'
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/usr/local/redis_cluster/redis/src'
cd src && make install
make[1]: Entering directory `/usr/local/redis_cluster/redis/src'
進(jìn)入src目錄下直接執(zhí)行?make MALLOC=libc? && make instal 就可以
3. 安裝完成后創(chuàng)建多個(gè)節(jié)點(diǎn)
安裝后孵运,創(chuàng)建多個(gè)文件夾治笨,將redis復(fù)制到文件夾中作為每個(gè)redis的節(jié)點(diǎn) 修改redis.conf文件
集群配置信息 :
daemonize yes//redis后臺(tái)運(yùn)行
pidfile/var/run/redis_10000.pid//pidfile文件對(duì)應(yīng)10000
port10000//端口10000
cluster-enabled yes//開(kāi)啟集群 把注釋#去掉
cluster-config-file nodes_10000.conf//集群的配置 配置文件首次啟動(dòng)自動(dòng)生成
cluster-node-timeout5000//請(qǐng)求超時(shí) 設(shè)置5秒夠了
appendonly yes//aof日志開(kāi)啟 有需要就開(kāi)啟驳概,它會(huì)每次寫(xiě)操作都記錄一條日志
bind127.0.0.1//這里要注意了,如果你只想在本機(jī)訪問(wèn)用127.0.0.1 旷赖,如果是局域網(wǎng)顺又,請(qǐng)配置內(nèi)網(wǎng)ip,如果想外網(wǎng)請(qǐng)配置外網(wǎng)ip
直接vi redis.conf 進(jìn)入文件后等孵,/查找相關(guān)字段修改就可以
4.創(chuàng)建節(jié)點(diǎn)后啟動(dòng)稚照,查看啟動(dòng)情況
./文件夾路徑/redis-server ?文件夾路徑/redis.conf
由于設(shè)置了后臺(tái)運(yùn)行 可通過(guò)ps-ef|grep redis 查看節(jié)點(diǎn)啟動(dòng)情況 如果某個(gè)節(jié)點(diǎn)沒(méi)有啟動(dòng)成功,需要到配置中將后臺(tái)運(yùn)行daemoize 設(shè)置成no ?在前臺(tái)查看日志 排除分析問(wèn)題原因
5.創(chuàng)建集群
創(chuàng)建redis-cluster集群需要使用工具 俯萌,官方推薦是redis-trib.rb需要安裝ruby
yum-y install ruby ruby-devel rubygems rpm-build
gem install redis#這里需要等一會(huì)果录,需要點(diǎn)時(shí)間
使用redis-trib.rb 的create 命令進(jìn)行創(chuàng)建
/usr/local/redis_cluster/10000/redis/src/redis-trib.rb create--replicas1127.0.0.1:10000127.0.0.1:10001127.0.0.1:10002127.0.0.1:10003127.0.0.1:10004127.0.0.1:10005
說(shuō)明:replicas表示需要有幾個(gè)slave--replicas? 1? 表示 自動(dòng)為每一個(gè)master節(jié)點(diǎn)分配一個(gè)slave節(jié)點(diǎn)? ? 上面有6個(gè)節(jié)點(diǎn),程序會(huì)按照一定規(guī)則生成 3個(gè)master(主)咐熙,3個(gè)slave(從) 弱恒。
如果創(chuàng)建失敗可能是由于防火墻的原因
6.測(cè)試集群
進(jìn)入redis/src目錄下redis-cli-p端口-h IP -c
set key value
get key
del key
測(cè)試是否能獲取到相應(yīng)存儲(chǔ)數(shù)據(jù),如果不加-c 可能在slave獲取master節(jié)點(diǎn)的數(shù)據(jù)時(shí) 報(bào)
(error) MOVED 866 10.4.226.85:10000 ?加-c后
-> Redirected to slot [866] located at 10.4.226.85:10000 重定向會(huì)master節(jié)點(diǎn)獲取數(shù)據(jù)