1. 程式人生 > >redis3.0.7安裝和叢集詳細步驟

redis3.0.7安裝和叢集詳細步驟

什麼是redis?

Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫。
它通過提供多種鍵值資料型別來適應不同場景下的儲存需求。
目前為止Redis支援的鍵值資料型別如下:

 1. 字串型別
 2. 雜湊型別
 3. 列表型別
 4. 集合型別
 5. 有序集合型別

redis的應用場景

 1. 快取(資料查詢、短連線、新聞內容、商品內容等等)。(最多使用)
 2. 分散式叢集架構中的session分離。
 3. 聊天室的線上好友列表。
 4. 任務佇列。(秒殺、搶購、12306等等)
 5. 應用排行榜。
 6. 網站訪問統計。

現在進入正題………

一、安裝redis

1.1、redis安裝環境

    redis是C語言開發,建議在linux上執行, 安裝redis需要先將官網下載的原始碼進行編譯,
編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc:
yum install gcc-c++

1.2、官網下載redis-3.0.7版本,3.*的版本才支援叢集模式

http://download.redis.io/releases/redis-3.0.7.tar.gz

1.3、更改許可權

chmod +x redis-3.0.7.tar.gz

1.4、解壓原始碼

tar -zxvf redis-3.0.7.tar.gz
-rw-------. 1 root root    1432 3月  19 05:21 anaconda-ks.cfg
-rw-r--r--. 1 root root   26150 3月  19 05:21 install.log
-rw-r--r--. 1 root root    8415 3月  19 05:20 install.log.syslog
drwxrwxr-x. 6 root root    4096 1月  25 2016 redis-3.0.7
-rwxr-xr-x. 1 root root 1375200 3月  19 05:32 redis-3.0.7.tar.gz
[
[email protected]
~]#

1.5、進入解壓後的目錄進行編譯

cd redis-3.0.7
make

1.6、安裝到指定目錄,如 /usr/local/redis

cd redis-3.0.7 
make PREFIX=/usr/local/redis install

1.7、redis.conf

redis.conf是redis的配置檔案,redis.conf在redis原始碼目錄。
注意修改port作為redis程序的埠,port預設6379。

1.8、拷貝配置檔案到安裝目錄下

進入原始碼目錄,裡面有一份配置檔案 redis.conf,然後將其拷貝到安裝路徑下
cd redis-3.0.7
cp redis-3.0.7/redis.conf  /usr/local/redis/bin

-rw-r--r--. 1 root root      28 3月  19 06:17 dump.rdb
-rwxr-xr-x. 1 root root 4169819 3月  19 05:44 redis-benchmark
-rwxr-xr-x. 1 root root   16459 3月  19 05:44 redis-check-aof
-rwxr-xr-x. 1 root root   37691 3月  19 05:44 redis-check-dump
-rwxr-xr-x. 1 root root 4262245 3月  19 05:44 redis-cli
-rwxr-xr-x. 1 root root   41561 3月  19 05:50 redis.conf
lrwxrwxrwx. 1 root root      12 3月  19 05:44 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5704647 3月  19 05:44 redis-server
[
[email protected]
bin]#

1.9、修改redis.conf配置檔案, 以後端模式啟動

修改  daemonize yes

執行如下命令啟動redis:
cd /usr/local/redis
./bin/redis-server ./redis.conf

停止命令:
強行終止Redis程序可能會導致redis持久化資料丟失。正確停止Redis的方式應該是向Redis傳送SHUTDOWN命令,方法為:
cd /usr/local/redis
./bin/redis-cli shutdown

1.10、檢視狀態

ps aux|grep redis

[[email protected] redis]# ps aux|grep redis
root      1801  0.0  0.0   5984   732 pts/0    S+   08:10   0:00 grep redis
root     10444  0.1  0.0  35560  1792 ?        Ssl  05:50   0:12 ./redis-server *:6379 

1.11、redis客戶端

    在redis的安裝目錄中有redis的客戶端,即redis-cli(Redis Command Line Interface),
它是Redis自帶的基於命令列的Redis客戶端。

在同一臺虛擬機器上的redis服務的方式:
[[email protected] redis]# cd bin/
[[email protected] bin]# ll
總用量 13920
-rw-r--r--. 1 root root      28 3月  19 06:17 dump.rdb
-rwxr-xr-x. 1 root root 4169819 3月  19 05:44 redis-benchmark
-rwxr-xr-x. 1 root root   16459 3月  19 05:44 redis-check-aof
-rwxr-xr-x. 1 root root   37691 3月  19 05:44 redis-check-dump
-rwxr-xr-x. 1 root root 4262245 3月  19 05:44 redis-cli
-rwxr-xr-x. 1 root root   41561 3月  19 05:50 redis.conf
lrwxrwxrwx. 1 root root      12 3月  19 05:44 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5704647 3月  19 05:44 redis-server
[[email protected] bin]# ./redis-cli 
127.0.0.1:6379>(然後就可以各種set key,get key了)

使用另外一臺安裝了redis的虛擬機器作為客戶端:(或者用jedis,相關知識自行腦補):
需要關閉伺服器端的的防火牆:
防火牆開啟6379埠
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status

客戶端虛擬機器中連線:指定連線redis服務的ip和埠:
./redis-cli -h 192.168.25.129 -p 6379

這樣,redis終於安裝完成了,不容易啊!然而……

二、搭建叢集

搭建偽分散式,需要6個redis例項(3個叢集,3個備份),執行在不同的埠(7001-7006)

2.1、複製多個例項

建立放叢集的目錄:
mkdir redis-cluster
[[email protected] local]# ll

總用量 44
drwxr-xr-x. 2 root root 4096 9月  23 2011 bin
drwxr-xr-x. 2 root root 4096 9月  23 2011 etc
drwxr-xr-x. 2 root root 4096 9月  23 2011 games
drwxr-xr-x. 2 root root 4096 9月  23 2011 include
drwxr-xr-x. 2 root root 4096 9月  23 2011 lib
drwxr-xr-x. 2 root root 4096 9月  23 2011 libexec
drwxr-xr-x. 3 root root 4096 3月  19 05:44 redis
drwxr-xr-x. 8 root root 4096 3月  19 06:40 redis-cluster
drwxr-xr-x. 2 root root 4096 9月  23 2011 sbin
drwxr-xr-x. 5 root root 4096 3月  19 05:14 share
drwxr-xr-x. 2 root root 4096 9月  23 2011 src

複製例項:
cp -r redis/bin redis-cluster/redis01
cp -r redis/bin redis-cluster/redis02
cp -r redis/bin redis-cluster/redis03
cp -r redis/bin redis-cluster/redis04
cp -r redis/bin redis-cluster/redis05
cp -r redis/bin redis-cluster/redis06
[[email protected] redis-cluster]# ll

總用量 32
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis01
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis02
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis03
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis04
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis05
drwxr-xr-x. 2 root root 4096 3月  19 07:38 redis06

 [[email protected] redis-cluster]#

2.2、需要修改每個例項的redis.conf配置檔案

[[email protected] bin]# vim redis.conf

修改埠號(7000-7006)
修改埠號

配置檔案中還需要把cluster-enabled yes前的註釋去掉
cluster-enabled yes前的註釋去掉

2.3、建立開啟叢集的指令碼

[[email protected] redis-cluster]# vim start-all.sh
內容:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

開啟:
[[email protected] redis-cluster]# ./start-all.sh
[[email protected] redis-cluster]# ps aux|grep redis
root       488  0.1  0.1  35560  2224 ?        Ssl  06:40   0:12 ./redis-server *:7001 [cluster]
root       492  0.1  0.1  35560  2248 ?        Ssl  06:40   0:12 ./redis-server *:7002 [cluster]
root       496  0.1  0.1  35560  2156 ?        Ssl  06:40   0:12 ./redis-server *:7003 [cluster]
root       500  0.1  0.1  35560  2148 ?        Ssl  06:40   0:12 ./redis-server *:7004 [cluster]
root       502  0.1  0.1  35560  2148 ?        Ssl  06:40   0:12 ./redis-server *:7005 [cluster]
root       506  0.1  0.1  35560  2136 ?        Ssl  06:40   0:12 ./redis-server *:7006 [cluster]

2.4、建立關閉叢集的指令碼

[[email protected] redis-cluster]# vim shutdown-all.sh 
redis01/redis-cli -p 7001 shutdown
redis01/redis-cli -p 7002 shutdown
redis01/redis-cli -p 7003 shutdown
redis01/redis-cli -p 7004 shutdown
redis01/redis-cli -p 7005 shutdown
redis01/redis-cli -p 7006 shutdown

關閉:
[[email protected] redis-cluster]# ./shutdown-all.sh

2.5、使用ruby指令碼搭建叢集,需要ruby的執行環境

2.5.1、安裝ruby
yum install ruby
出現【y/n】,選y
2.5.2、安裝rubygems元件
yum install rubygems
出現【y/n】,選y
2.5.3、安裝ruby指令碼執行使用的包
[[email protected] redis-cluster]# gem install redis --version 3.0.7
Successfully installed redis-3.0.7
1 gem installed
Installing ri documentation for redis-3.0.7...
Installing RDoc documentation for redis-3.0.7...
[[email protected] redis-cluster]#

注意:gem install redis --version 3.0.7失敗的話,修改下載網址
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/

2.6、執行redis的建立叢集命令建立叢集(這一步之前要開啟所有的例項)

2.6.1、到redis的編譯目錄
[[email protected] ~]# cd redis-3.0.7
[[email protected] redis-3.0.7]# ll

總用量 152
-rw-rw-r--.  1 root root 36761 1月  25 2016 00-RELEASENOTES
-rw-rw-r--.  1 root root    53 1月  25 2016 BUGS
-rw-rw-r--.  1 root root  1805 1月  25 2016 CONTRIBUTING
-rw-rw-r--.  1 root root  1487 1月  25 2016 COPYING
drwxrwxr-x.  6 root root  4096 3月  19 05:43 deps
-rw-rw-r--.  1 root root    11 1月  25 2016 INSTALL
-rw-rw-r--.  1 root root   151 1月  25 2016 Makefile
-rw-rw-r--.  1 root root  4223 1月  25 2016 MANIFESTO
-rw-rw-r--.  1 root root  5201 1月  25 2016 README
-rw-rw-r--.  1 root root 41560 1月  25 2016 redis.conf
-rwxrwxr-x.  1 root root   271 1月  25 2016 runtest
-rwxrwxr-x.  1 root root   280 1月  25 2016 runtest-cluster
-rwxrwxr-x.  1 root root   281 1月  25 2016 runtest-sentinel
-rw-rw-r--.  1 root root  7109 1月  25 2016 sentinel.conf
drwxrwxr-x.  2 root root  4096 3月  19 05:44 src
drwxrwxr-x. 10 root root  4096 1月  25 2016 tests
drwxrwxr-x.  5 root root  4096 1月  25 2016 utils

[[email protected] redis-3.0.7]# cd src/
[[email protected] src]# ll *rb
-rwxrwxr-x. 1 root root 60527 1月  25 2016 redis-trib.rb
能找到redis-trib.rb,說明2.5.3步,成功了!

離成功僅有一步之遙……

2.6.2、執行叢集命令

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

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.25.129:7001
192.168.25.129:7002
192.168.25.129:7003
Adding replica 192.168.25.129:7004 to 192.168.25.129:7001
Adding replica 192.168.25.129:7005 to 192.168.25.129:7002
Adding replica 192.168.25.129:7006 to 192.168.25.129:7003
M: d52bb51542a81bc5b19c05cdbec2b9449543c9dd 192.168.25.129:7001
   slots:0-5460 (5461 slots) master
M: f9778ba394c79a5e5a51d644a14896d5141f1c5a 192.168.25.129:7002
   slots:5461-10922 (5462 slots) master
M: 91f1f855f34908e7177655e41c1f92f97fd439bf 192.168.25.129:7003
   slots:10923-16383 (5461 slots) master
S: 79a189b5d22fadeb4c512f0623e90b6b60aeab61 192.168.25.129:7004
   replicates d52bb51542a81bc5b19c05cdbec2b9449543c9dd
S: 9f9923000ffbae92dead6fdc13dd342c99d383de 192.168.25.129:7005
   replicates f9778ba394c79a5e5a51d644a14896d5141f1c5a
S: 802209d47ffe5af1002084bf2effa4b3cdfde1f0 192.168.25.129:7006
   replicates 91f1f855f34908e7177655e41c1f92f97fd439bf

選擇yes

Can I set the above configuration? (type 'yes' to accept): 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.25.129:7001)
M: d52bb51542a81bc5b19c05cdbec2b9449543c9dd 192.168.25.129:7001
   slots:0-5460 (5461 slots) master
M: f9778ba394c79a5e5a51d644a14896d5141f1c5a 192.168.25.129:7002
   slots:5461-10922 (5462 slots) master
M: 91f1f855f34908e7177655e41c1f92f97fd439bf 192.168.25.129:7003
   slots:10923-16383 (5461 slots) master
M: 79a189b5d22fadeb4c512f0623e90b6b60aeab61 192.168.25.129:7004
   slots: (0 slots) master
   replicates d52bb51542a81bc5b19c05cdbec2b9449543c9dd
M: 9f9923000ffbae92dead6fdc13dd342c99d383de 192.168.25.129:7005
   slots: (0 slots) master
   replicates f9778ba394c79a5e5a51d644a14896d5141f1c5a
M: 802209d47ffe5af1002084bf2effa4b3cdfde1f0 192.168.25.129:7006
   slots: (0 slots) master
   replicates 91f1f855f34908e7177655e41c1f92f97fd439bf
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[[email protected] src]#

搭建redis叢集成功!

進行測試

[[email protected] redis-cluster]# ./start-all.sh 
[[email protected] redis-cluster]# ps aux|grep redis
root      2631  4.5  0.1  35560  2076 ?        Ssl  11:59   0:00 ./redis-server *:7001 [cluster]
root      2633  2.0  0.1  35560  2072 ?        Ssl  11:59   0:00 ./redis-server *:7002 [cluster]
root      2635  1.0  0.1  35560  2076 ?        Ssl  11:59   0:00 ./redis-server *:7003 [cluster]
root      2641  0.0  0.1  35560  2072 ?        Ssl  11:59   0:00 ./redis-server *:7004 [cluster]
root      2643  0.5  0.1  35560  2076 ?        Ssl  11:59   0:00 ./redis-server *:7005 [cluster]
root      2649  0.0  0.1  35560  2076 ?        Ssl  11:59   0:00 ./redis-server *:7006 [cluster]
root      2655  0.0  0.0   5980   748 pts/0    S+   11:59   0:00 grep redis
root     10444  0.1  0.0  35560  1752 ?        Ssl  05:50   0:30 ./redis-server *:6379    
[[email protected] redis-cluster]# redis01/redis-cli -p 7001 -c
127.0.0.1:7001> set key1 1
-> Redirected to slot [9189] located at 192.168.25.129:7002
OK
192.168.25.129:7002> get key1
"1"
192.168.25.129:7002> 
[[email protected] redis-cluster]# redis01/redis-cli -p 7002 -c
127.0.0.1:7002> get key1
"1"
[[email protected] redis-cluster]# redis01/redis-cli -p 7003 -c
127.0.0.1:7003> get key1
-> Redirected to slot [9189] located at 192.168.25.129:7002
"1"
192.168.25.129:7002> 

這是自己在學習專案中的一點點總結,也是第一次發部落格,難免有點激動,出現錯誤還請大佬多多指教……

相關推薦

redis3.0.7安裝叢集詳細步驟

什麼是redis? Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫。 它通過提供多種鍵值資料型別來適應不同場景下的儲存需求。 目前為止Redis支援的鍵值資料型別如下: 1. 字串型別 2. 雜湊型別 3. 列表型別 4

CentOS6.5下redis3.0.7安裝、啟動、關閉、配置密碼、開機啟動詳細步驟

安裝環境: CentOS 6.5 Redis 3.0.7 下載安裝: 下載檔案到 /usr/local 目錄下 解壓檔案 tar zxvf redis-3.0.7.tar.gz 切換目錄到 redis-3.0.7 目錄下 cd redis-3

centos 7 安裝二進位制mysql 詳細步驟

1 下載地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 複製這個連結在迅雷上下載比較快。 2 上傳到centos伺服器:scp mysql-5.7.24-linux-glibc2

jmeter 4.0下載安裝漢化步驟

一.jdk8下載和安裝成功 注意:安裝jmeter4.0版本之前,需要先安裝jdk 二.官網下載jmeter安裝zip包,直接解壓到電腦任意硬碟: (一)jmeter官網地址:https://jmeter.apache.org  點選開啟連結 (二)官網直接下載

centos-7安裝rabbitmq-21詳細步驟及坑

1、先在www.erlang.org/downloads下載erlang的碼源,然後下載rabbitmq 2、初始化環境       <1> 配置 阿里雲yum源 詳細步驟 https://blog.csdn.net/ltx06/article/details/7

【jmeter】jmeter 4.0下載安裝漢化步驟

目錄 一.jdk8下載和安裝成功 注意:安裝jmeter4.0版本之前,需要先安裝jdk8或10,可參照我的另一博文:【jdk】jdk8下載和安裝: 博文地址:https://blog.csdn.net/qq_39720249/article/det

Centos 7.0安裝Zabbix server詳細步驟

zabbix lnmp zabbix安裝部署 zabbix(音同 zbix)是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 zabbix由2部分構成,zabbix server與可選組件zabbix agent。zabbix server可以

linux下單節點叢集安裝zookeeper(詳細步驟

單節點安裝zookeeper  1、解壓zookeeper檔案 將下載到的zookeeper-3.4.6.tar.gz安裝檔案上傳到伺服器的/home目錄,解壓後進入根目錄建立data資料夾和logs資料夾 cd /usr/local

Centos 7安裝Samba的詳細步驟

samba 為了實現Windows主機與Linux服務器之間的資源共享,Linux操作系統提供了Samba服務,Samba服務為兩種不同的操作系統架起了一座橋梁,使Linux系統和Windows系統之間能夠實現互相通信,為廣泛的Linux愛好者提供了極大方便。本文簡要介紹如何在Linux操作系統上搭建S

oracle 11g r2 rac 安裝整理 附詳細步驟(親測VMwareexsi都可以完美安裝物理機自然沒有問題)

oracle 11g r2 rac由於前面安裝了,由於時間關系沒有來得及整理,今天閑下來,整理了安裝步驟,還是活的一些收獲的,下面附上步驟:1.安裝操作系統最小化安裝即可2.關閉防火墻3.替換yum4.添加共享磁盤5.創建用戶和用戶組6.添加用戶環境變量7.調整內核參數8.安裝依賴包9.配置hosts10.

叢集安裝zookeeper(詳細步驟

1、解壓zookeeper檔案 首先在主節點配置: 將下載到的zookeeper-3.4.6.tar.gz安裝檔案上傳到主機點的/usr/local目錄,解壓後進入根目錄建立data資料夾和logs資料夾 cd /usr/local #移動到安

linux伺服器 centos_7 安裝jdk1.8tomcat詳細步驟

1、檢查當前Linux系統是否已安裝JDK,我的沒安裝過,所有直接安裝了 2.使用命令建立JDK安裝目錄:mkdir /usr/java 3,直接在linux上下載jdk安裝包,使用命令L: [[email protected] java]# wget http:/

CentOS 7安裝圖形界面步驟問題解決方法

-- src sysconf rip bubuko ifconfig 技術 ger pts 一、CentOS 7圖形安裝步驟:  首先需要進行必要的圖形組件安裝--命令為: yum groupinstall "X Window System "

為什麼應用程式在Android 7.0之後安裝執行都變得更快?

需要了解幾個概念 Dalvik 虛擬機器 負責解釋dex檔案為機器碼,每次執行程式碼,都需要Dalvik將dex程式碼翻譯為微處理器指令,然後交給系統處理,這樣效率不高。 JIT(Just-In-Time) 為了解決上面的問題,Google在2

gtest 1.7.0安裝使用

Linux x86環境下 一,gtest安裝 下載gtest原始碼包:gtest-1.7.0.zip 解壓後進入gtest-1.7.0目錄 cmake CMakeLists.txt make 後生成兩個靜態庫:libgtest.a libgtest_main.a sudo c

CentOS 7.0安裝配置 VNC 服務器

run 雙引號 我們 rhel 7 control linux fault 系統管理員 daemon 作為一個系統管理員,大多數時間是通過網絡管理服務器的。在管理服務器的過程中很少會用到圖形界面,多數情況下我們只是用 SSH 來完成我們的管理任務。在這篇文章裏,我們將配置

Ambari 2.1安裝HDP2.3.2 之 六、安裝部署HDP叢集 詳細步驟

六、安裝部署HDP叢集 瀏覽器訪問 http://master:8080,進入amabri登入頁面,使用者名稱:admin,密碼: admin 選擇 Launch Install Wizard: 1. Get started 給叢集起個名字

linux下安裝DB2的詳細步驟

justify linux style 第一步:檢查程序包及其版本 compat-libstdc++-7.3-2.96.118.i386.rpm 在linux的安裝盤上,找到後使用rpm -i compat-libstdc++-7.3-2.96.118.i386.rpm 安裝即可

centos 7 安裝配置vncserver

gre nta emc adding ncpa pass bsp dex des centos 7 安裝和配置vncserver 前期準備: 關閉防火墻,centos的防火墻是firewalld,關閉防火墻的命令 1 systemctl stop fi

Linux Tomcat安裝及配置詳細步驟

linu uri 得到 developer .sh spa develop 技術分享 .tar.gz 1. 連接服務器,進入你要存儲文件的文件夾(我的是 cd /root/developer),下載tomcat,得到 apache-tomcat-9.0.4.tar.gz