1. 程式人生 > >安裝Redis單機版or叢集

安裝Redis單機版or叢集

redis操作命令 點選開啟連結 -常用資料型別:String、Hash、List(耗費效能)、Set、SortedSet(非常耗費效能)

單機版

1、在linux中安裝gcc 命令符:  yum install -y gcc-c++ 
2、將redis-3.0.tar.gz包放到指定路徑並解壓,命令符:tar -zxvf redis-3.0.tar.gz 
2.1 然後進入解壓好的redis包中直接命令符:make (編譯redis)
2.2 指定安裝路徑 命令符 :make install PREFIX=/usr/local/redis ;安裝完成後redis檔案中只有一個bin目錄
3、啟動-預設埠6379-設定為後端啟動

 3.1 找到解壓好的redis包中的conf配置檔案-redis.conf 檔案,複製一份到安裝redis中bin目錄中
 3.1.1命令: cp redis.conf /usr/local/redis/bin/
    3.2 修改配置檔案- vim redis.conf;修改值 daemonize yes  -------------------------------------------

4、啟動redis 命令符:./redis-server redis.conf 
5、檢視是否啟動成功--------------------------- 6、進入redis客戶端中 命令符:./redis-cli

 退出客戶端 命令符:quit

Redis叢集搭建

1、架構細節
(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬.
 (2)節點的fail是通過叢集中超過半數的節點檢測失效時才生效.
 (3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連線叢集所有節點,連線叢集中任何一個可 用節點即可
 (4)redis-cluster把所有的物理節點對映到[0-16383]slot上,cluster負責維護node<->slot<->value
 Redis叢集中內建了 16384個雜湊槽,當需要在 Redis叢集中放置一個 key-value時,redis先對 key使 用 crc16演算法算
 出一個結果,然後把結果對 16384求餘數,這樣每個 key都會對應一個編號在 0-16383之間的雜湊 槽,redis會根據節點
 數量大致均等的將雜湊槽對映到不同的節點

2、 redis-cluster投票:容錯

 ---------------------------------


(1)領著投票過程是叢集中所有master參與,如果半數以上master節點與master節點通訊超過(cluster-node-timeout),認為當前master節點掛掉.
 (2):什麼時候整個叢集不可用(cluster_state:fail)? 

a:如果叢集任意master掛掉,且當前master沒有slave.叢集進入fail狀態,也可以理解成叢集的slot映 射[0-16383]不完成時進入fail狀態.  

ps : redis-3.0.0.rc1加入cluster-require-full-coverage引數,預設關閉,開啟叢集相容部分失敗.

b:如果叢集超過半數以上master掛掉,無論是否有slave叢集進入fail狀態.     

ps:當叢集不可用時,所有對叢集的操作做都不可用,收到((error) CLUSTERDOWN The cluster is   down)錯誤 3、搭建叢集的概念
叢集中要有三個節點的叢集,每個節點要有一主一備,共需要搭建最少六個redis。

使用偽分散式結構,用6個redis節點模擬。

4、搭建環境
(1)搭建叢集需要使用ruby指令碼語言
(2)安裝ruby-
yum install ruby
yum install rubygems
(3)安裝ruby和redis介面將下載好的redis-3.0.0.gem(根據當前redis版本來下載)檔案上傳至linux中使用命令符:gem install redis-3.0.0.gem 5、搭建叢集開始
 (1)將已經安裝好的單機版redis的bin目錄複製六份到redis-cluster資料夾中,檔名為redis01,02........06

 先複製一份,修改好後在複製五份 --------------------

(2)將複製的redis們全部修改埠號 --埠號(7001-7006)

刪除快照檔案-dump.rdb檔案

修改埠---------------------------------

修改cluster-enable ---------------------------

(3)複製其他的五份redis例項 ------------------

(4)修改其他redis例項中的埠號 7002-7006. (5)將redis原始碼包中的src/redis-trib.rb檔案拷貝到redis-cluster資料夾中 -------------------------

(6)啟動全部redis例項-建立指令碼啟動,方便操作
 建立redis-all-start.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 ..

--------------------------------------------
設定而許可權
命令符:chmod +x redis-all-start.sh     
============================================
建立redis例項全部關閉sh

redis-all-shutdown.sh

redis01/redis-cli -c -h 192.168.255.129 -p 7001 shutdown
 redis01/redis-cli -c -h 192.168.255.129 -p 7002 shutdown
 redis01/redis-cli -c -h 192.168.255.129 -p 7003 shutdown
 redis01/redis-cli -c -h 192.168.255.129 -p 7004 shutdown
 redis01/redis-cli -c -h 192.168.255.129 -p 7005 shutdown
 redis01/redis-cli -c -h 192.168.255.129 -p 7006 shutdown
設定檔案許可權
chmod +x redis-all-shutdown.sh

(7)啟動檔案-檢視是否成功--命令符:ps aux|grep redis

(8)啟動叢集-
 輸入命令符:
./redis-trib.rb create --replicas 1 192.168.255.129:7001 192.168.255.129:7002 192.168.255.129:7003 192.168.255.129:7004 192.168.255.129:7005 192.168.255.129:7006

(9)測試叢集
 輸入命令符:redis01/redis-cli -h 192.168.255.129 -p 7001 -c (需要輸入連線的ip和任意埠號,末尾加-c表示連線叢集)

(10)叢集建立成功!!!!!!