安裝Redis單機版or叢集
阿新 • • 發佈:2018-12-25
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投票:容錯
(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
輸入命令符:redis01/redis-cli -h 192.168.255.129 -p 7001 -c (需要輸入連線的ip和任意埠號,末尾加-c表示連線叢集)
(10)叢集建立成功!!!!!!