1. 程式人生 > >linux 安裝redis叢集 一臺機器上安裝六個redis 叢集

linux 安裝redis叢集 一臺機器上安裝六個redis 叢集

安裝單機版redis

寫文章時最新版本為:redis-4.0.1.tar.gz

可以先下載到windows作業系統,然後拷貝到centos。

下載成功後,在centos上建立一個目錄,存放我們的軟體,我比較喜歡放在/soft目錄下。

[[email protected] /]# mkdir /soft

然後利用WinScp工具拷貝到centos系統,放在/soft/目錄下。

可以在 這兒下載http://download.csdn.net/download/u013308504/10250657   解壓後可以直接使用   可以省略步驟3和4

1、安裝gcc

[[email protected] ~]# yum install gcc

中間有2次提示,要求輸入:yes 或 y,我們按照提示來就可以。

2、安裝pstree

[[email protected] ~]# yum install psmisc

中間有1次提示,要求輸入:y。按照提示來就可以。

3、解壓tar包

[[email protected] /]# cd /soft

[[email protected] soft]# tar zxvf redis-4.0.1.tar.gz

[[email protected] soft]# mv redis-4.0.1 /usr/local/redis

4、編譯安裝

[[email protected] soft]# cd /usr/local/redis

[[email protected] redis]# make MALLOC=libc

[[email protected] redis]# make & make install

說明:如果在make的時候不指定記憶體管理方式,會報錯的:

zmalloc.h:50:31: 致命錯誤:jemalloc/jemalloc.h:沒有那個檔案或目錄。

malloc是管理記憶體碎片的。

5、啟動reids 看是否安裝成功

[[email protected] redis]# ./src/redis-server redis.conf

如果報沒得許可權 在當前目錄下 執行命令 chmod 777 ./src/redis-server

如果成功,如下圖:

然後新開終端,開啟redis客戶端

[[email protected] ~]# cd /usr/local/redis/

[[email protected] redis]# src/redis-cli

表示已經啟動成功。

我相信單機安裝有點linux基礎的同學都能安裝成功。


叢集redis

1、安裝ruby

清理已安裝過的 ruby

yum erase ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs

手動下載 

https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz

上傳到linux環境 並解壓

tar xf ruby-2.2.7.tar.gz

剛開始用命令yum install ruby安裝,但是是2.0以下的版本。我把它解除安裝了,重新下的2.0以上的包安裝

把安裝包上傳到指定目錄,並解壓

命令:tar zxvf ruby-2.2.7.tar.gz;解壓後,進入ruby-2.2.7目錄下,依次執行下面命令

命令:./configure

命令:make & make install

新增環境變數 export PATH=/usr/local/ruby-2.2.7/bin:$PATH

2、檢視ruby資訊

命令:ruby -v

3、要支援redis的通訊,需要下載redis相關包

命令:gem install redis

新建6個資料夾 cp -RF redis 7001 cp -RF redis 7002....

redis.conf

配置檔案 全部替換即可redis.conf 並修改相應的IP 與埠

#自己的ip
bind 192.168.33.159
port 7001
timeout 0
tcp-keepalive 0
loglevel notice
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
################################# REPLICATION #################################
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
############################## APPEND ONLY MODE ###############################
appendonly yes
appendfilename "appendonly.7001.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
################################# SLOW LOG ###################################
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10

aof-rewrite-incremental-fsync yes

啟動叢集 前 先啟動所有的單個redis

[[email protected] 7001]# ./src/redis-trib.rb create --replicas 1 192.168.33.159:7001 192.168.33.159:7002 192.168.33.159:7003 192.168.33.159:7004 192.168.33.159:7005 192.168.33.159:7006
>>> Creating cluster

[ERR] Sorry, can't connect to node 192.168.33.159:7001

出現這個錯誤 是由於redis.conf 配置檔案是127.0.0.1 修改成對應的內網IP即可

[[email protected] src]# ./redis-trib.rb create --replicas 1 192.168.33.159:7001 192.168.33.159:7002 192.168.33.159:7003 192.168.33.159:7004 192.168.33.159:7005 192.168.33.159:7006

-bash: ./redis-trib.rb: 許可權不夠

[[email protected] src]# chmod  777 ./redis-trib.r

使用redis-trib.rb 啟動 叢集

[[email protected] 7001]# ./src/redis-trib.rb create --replicas 1 192.168.33.159:7001 192.168.33.159:7002 192.168.33.159:7003 192.168.33.159:7004 192.168.33.159:7005 192.168.33.159:7006

-------------啟動日誌

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.33.159:7001
192.168.33.159:7002
192.168.33.159:7003
Adding replica 192.168.33.159:7005 to 192.168.33.159:7001
Adding replica 192.168.33.159:7006 to 192.168.33.159:7002
Adding replica 192.168.33.159:7004 to 192.168.33.159:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: f4becd9fda2f030d45894adf29299b713464deca 192.168.33.159:7001
   slots:0-5460 (5461 slots) master
M: 1761b5c929704f4b28577e8a45118265af3000ec 192.168.33.159:7002
   slots:5461-10922 (5462 slots) master
M: 2fb1ad83a7663a54eb873e99f69a02a678ec5fe1 192.168.33.159:7003
   slots:10923-16383 (5461 slots) master
S: 8e822227ee657be7e781cfb9ad3057b0a20fe89f 192.168.33.159:7004
   replicates f4becd9fda2f030d45894adf29299b713464deca
S: fadce9dbd7c96990116c712d7e120a293427358a 192.168.33.159:7005
   replicates 1761b5c929704f4b28577e8a45118265af3000ec
S: 0efa39d0ec0d487c8ed2b019ce977fc9b8c933fb 192.168.33.159:7006
   replicates 2fb1ad83a7663a54eb873e99f69a02a678ec5fe1
Can I set the above configuration? (type 'yes' to accept): yes ---輸入yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
>>> Performing Cluster Check (using node 192.168.33.159:7001)
M: f4becd9fda2f030d45894adf29299b713464deca 192.168.33.159:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: fadce9dbd7c96990116c712d7e120a293427358a 192.168.33.159:7005
   slots: (0 slots) slave
   replicates 1761b5c929704f4b28577e8a45118265af3000ec
M: 2fb1ad83a7663a54eb873e99f69a02a678ec5fe1 192.168.33.159:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 8e822227ee657be7e781cfb9ad3057b0a20fe89f 192.168.33.159:7004
   slots: (0 slots) slave
   replicates f4becd9fda2f030d45894adf29299b713464deca
M: 1761b5c929704f4b28577e8a45118265af3000ec 192.168.33.159:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 0efa39d0ec0d487c8ed2b019ce977fc9b8c933fb 192.168.33.159:7006
   slots: (0 slots) slave
   replicates 2fb1ad83a7663a54eb873e99f69a02a678ec5fe1
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


連線redis叢集 

在192.168.33.159機器上進行連線

7001目錄下執行

./src/redis-cli -h 192.168.33.159 -c -p 7001


已經自動跳轉到了7002伺服器了

如果重啟伺服器後,再次執行redis-trib.rb會報錯如下錯誤:

[ERR] Node 192.168.33.159:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解決方法:

刪除dump.rdb和nodes-7001.conf這兩個檔案,然後重啟redis服務,最後啟動叢集。

1次不行搞2次,2次不行搞3次。多刪除幾次


相關推薦

linux 安裝redis叢集 機器安裝redis 叢集

安裝單機版redis寫文章時最新版本為:redis-4.0.1.tar.gz可以先下載到windows作業系統,然後拷貝到centos。下載成功後,在centos上建立一個目錄,存放我們的軟體,我比較喜歡放在/soft目錄下。[[email protected] /

機器搭建多redis例項的配置檔案修改部分

1、單個redis服務搭建請參考:redis服務搭建 2、一臺Redis伺服器,分成多個節點,每個節點分配一個埠(6380,6381…),預設埠是6379。 每個節點對應一個Redis配置檔案,如: redis6380.conf、redis6381.conf #cp redis.conf

機器搭建多redis例項

預設Redis程式安裝在/usr/local/redis目錄下;配置檔案:/usr/local/redis/redis.conf,該配置檔案中配置的埠為預設埠:6379;Redis的啟動命令路徑:/usr/local/bin/redis-server。可以指定埠啟動多個Red

利用 Docker 在機器部署多 Redis 例項

docker run -p 20001:6379 -d redis redis-server --appendonly yes docker run -p 20002:6379 -d redis redis-server --appendonly yes doc

windows下如何在機器安裝MYSQL資料庫

第一個mysql的my.ini檔案預設是在如下路徑 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini copy該ini檔案存放到E:\MySQL\mysql_base,這個路徑可以隨意定義,並修

git 在機器配置多賬戶

rac ssh xxxxxx pla 必須 account ack entity 設置 前提: 必須知道怎樣配置git賬戶,請參考git官方教程:https://help.github.com/articles/generating-ssh-keys 這個教程能教你怎

機器啟動兩tomcat埠號衝突問題

有時候我們需要在一臺機器上啟動多個專案,但是一個tomcat下啟動多個專案會導致除錯會出不可預期的問題,所以可以試著啟動兩個tomcat伺服器 步驟如下: 1.開啟tomcat的安裝目錄找到conf資料夾下的server.xml檔案 C:\Program Files\Apa

如何在電腦安裝Linux發行版

不得不承認,在一臺電腦上安裝多個Linux發行版,這是一個十分‘尷尬的’需求,但是出於某種原因,我就是有了這種需要。 經常安裝Windows的朋友都知道,window多系統安裝很簡單,系統會自動檢索更新引導選單,所以安裝完畢就可以選擇不同的系統進入了。 但是安裝多個Linu

如何在電腦安裝jdk

tput support -c win index text different ref recent Technote (FAQ) Question How to install multiple versions of Java on a workstation? C

如何在同一機器安裝MySQL的實例(轉)

其他 搭建 如果 com 啟動mysql default vim 比喻 width   最近由於工作的需要,需要在同一臺機器上搭建兩個MySQL的實例,(註:已經存在了一個3306的MySQL的實例)。  先說下,什麽是mysql的多實例,簡單的來說就是一臺機器上安裝了多個

如何在同一機器安裝MySQL的實例 轉

oal 源碼包 就會 端口號 tar 進程 信息 什麽 cnblogs https://www.cnblogs.com/shangzekai/p/4375271.html 最近由於工作的需要,需要在同一臺機器上搭建兩個MySQL的實例,(註:已經存在了一個3306

Nginx機器負載均衡多Tomcat

預設你的機器上安裝了Java環境,解壓了Tomcat,安裝了Nginx。預設這幾個tomcat都部署在一臺機器上。   對於Tomcat需要改三個地方【你部署的所有tomcat這三個地方都不能一樣,如果你部署在不同機器上就不用改了】 vi [你的tomcat路徑]/conf/

Nginx聯合Tomcat在機器最快方式實現反向代理和負載均衡

準備 解壓安裝編譯Nginx 解壓Tomcat 將解壓後的Tomcat複製兩份分別叫Tomcat1和Tomcat2 在Tomcat1目錄下修改conf/server.xml檔案裡埠號 第22行<Server port="8005" shutdown="

Linux-定時指令碼將伺服器的mysql資料庫自動備份到另伺服器的資料庫中

有兩臺伺服器,一臺正式伺服器A,一臺測試伺服器B,現需要將正式伺服器A中的資料庫每天備份到測試伺服器B,提高資料庫的容災性以及防止資料庫在測試中出現錯誤。1.從正式伺服器A中匯出需要備份的資料庫使用mysqldump指令匯出資料庫檔案/usr/sbin/mysqldump -

如何在機器同時執行兩tomcat

一、在一個tomcat上執行war包 兩個專案,其中一個打成war包執行在解壓的一個tomcat伺服器上,如何打war包及部署到tomcat上詳情 二、在myEclipse裡面啟動tomcat 1

idea ssm專案遷移到另機器時出現不能正常啟動專案的解決方案

    首先右下角提示關聯spring檔案,關聯之,然後啟動,發現專案無法啟動,然後開始排錯    首先從這個日誌裡發現了這麼一條提示資訊   然後百度了一下,答案都是說 web.xml 之類的 spring攔截器

電腦安裝TOMCAT伺服器

7. 修改startup.bat和catalina.bat檔案內容: (1) 開啟D:\Programming Tools\apache-tomcat-7.0.72-8081\bin\startup.bat檔案,把其中所有CATALINA_HOME替換為CATALINA_HOME_8081。 (2) 開啟D

我在2機器安裝OpenSolaris, 但它們之間不能ping通,請幫忙看一下

我做了如下配置(兩臺機器通過一臺交換機連線):======================第一臺機器tiger==================關閉nwam# svcadm disable nwam主機名為tiger# cat /etc/nodenametiger# vi

SVN倉庫遷移(將一個倉庫從機器上上轉移到另機器

將一臺伺服器上已有的SVN倉庫資料整體遷移到另外一臺機器上,要保留所有的版本號和版本資訊,需要以下過程來解決 No.1 將準備要遷移的倉庫匯出 命令: svnadmin dump 倉庫名 > svn_dump No.2 在新的伺服器上建立心的倉庫 命令: svnad

如何在主機安裝版本oracle 資料庫?

本文以在一個host 上安裝2個版本的oracle資料庫(oracle 10g/11g)為例,做一個簡單的介紹。 系統環境使用的是ol5.8,採用oracle-validate-rpm來自動配置oracle的系統環境。 安裝路徑需要手工建立,在這裡需要準備兩個兩個path