redis3.0.0 集羣環境部署

(要讓集羣正常工做至少須要3個主節點,在這裏咱們要建立6個redis節點,其中三個爲主節點,三個爲從節點,對應的redis節點的ip和端口對應關係以下)node

127.0.0.1:7000
127.0.0.1:7001
git

127.0.0.1:7002github

127.0.0.1:7003redis

127.0.0.1:7004vim

127.0.0.1:7005ruby


1.下載redis。官網下載3.0.0版本,以前2.幾的版本不支持集羣模式app

wget https://github.com/antirez/redis/archive/3.0.0-rc2.tar.gzide


2.解壓安裝
ui

tar -zxvf redis-3.0.0-rc2.tar.gz  spa

mv redis-3.0.0-rc2.tar.gz /usr/local/redis3.0

cd /usr/local/redis3.0 

make 若報錯則執行(make MALLOC=libc)

make install

wKioL1lcS1jy2B2DAAB2l_gsLyE943.png

編譯時可能會報錯:

安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法

錯誤描述

安裝Redis 2.8.18時報錯:


zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory

zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/data0/src/redis-2.6.2/src'

make: *** [all] Error 2

緣由分析

在README 有這個一段話。

Allocator  

---------  

Selecting a non-default memory allocator when building Redis is done by setting  

the `MALLOC` environment variable. Redis is compiled and linked against libc  

malloc by default, with the exception of jemalloc being the default on Linux  

systems. This default was picked because jemalloc has proven to have fewer  

fragmentation problems than libc malloc.  

To force compiling against libc malloc, use:  

    % make MALLOC=libc  

To compile against jemalloc on Mac OS X systems, use:  

    % make MALLOC=jemalloc

說關於分配器allocator,若是有MALLOC 這個環境變量,會有用這個環境變量的去創建Redis。

並且libc並非默認的分配器,默認的是 jemalloc,由於 jemalloc 被證實有更少的fragmentation problems比libc。

可是若是你又沒有jemalloc 而只有 libc 固然 make 出錯。 因此加這麼一個參數。

解決辦法

make MALLOC=libc


3.建立集羣須要的目錄

mkdir -p /usr.local/cluster 

cd /usr.local/cluster

wKioL1lcS9aignkSAABBZp8zkHA623.png


4.修改配置文件redis.conf

cp /usr/local/redis3.0/redis.conf /usr.local/cluster/

vim redis.conf


###須要修改的內容##

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

appendonly yes

##修改完redis.conf配置文件中的這些配置項以後把這個配置文件分別拷貝到7000/7001/7002/7003/7004/7005目錄下面

wKiom1lcTEjQkDa9AAB0rcj4Ckg307.png

##注意:拷貝完成以後要修改7001/7002/7003/7004/7005目錄下面redis.conf文件中的port參數,分別改成對應的文件夾的名稱


5.分別啓動這6個redis實例


cd /usr/local/cluster/7000

redis-server redis.conf

cd /usr/local/cluster/7001

redis-server redis.conf

cd /usr/local/cluster/7002

redis-server redis.conf

cd /usr/local/cluster/7003

redis-server redis.conf

cd /usr/local/cluster/7004

redis-server redis.conf

cd /usr/local/cluster/7005

redis-server redis.conf

wKiom1lcTWPCg_taAAEYirO0vpA773.png

##啓動以後使用命令查看redis的啓動狀況ps -ef|grep redis

[root@localhost ~]# ps -ef|grep redis

root      2495     1  0 20:09 ?        00:00:04 redis-server *:7000 [cluster]

root      2505     1  0 20:10 ?        00:00:05 redis-server *:7001 [cluster]

root      2510     1  0 20:10 ?        00:00:04 redis-server *:7002 [cluster]

root      2520     1  0 20:13 ?        00:00:04 redis-server *:7003 [cluster]

root      2528     1  0 20:14 ?        00:00:04 redis-server *:7004 [cluster]

root      2534     1  0 20:14 ?        00:00:04 redis-server *:7005 [cluster]

root      2878   1477  0 20:54 pts/0     00:00:00 grep redis


6.執行redis的建立集羣命令建立集羣

安裝建立集羣所須要的環境及插件

yum install -y ruby

yum install -y rubygems

gem install redis(redis和ruby的接口,使用gem安裝)(本次實驗環境可上網)

cd /usr/local/redis3.0/src/

./redis-trib.rb  create --replicas 1 127.0.0.1:7000 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

wKiom1lcSPXweagUAALAVIwPU94090.png

至此redis集羣即搭建成功!


7.使用redis-cli命令進入集羣環境

redis-cli -c -p 7000

加入-c ,能夠在輸入的鍵值不在指定的端口時會自動跳轉到對應的端口。

相關文章
相關標籤/搜索