1. 程式人生 > >redis安裝和主從搭建(redis學習筆記2)

redis安裝和主從搭建(redis學習筆記2)

redis安裝環境

   redis是C語言開發,建議在linux上執行。

  1.    安裝redis需要先將官網下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc
yum install gcc-c++

2. 下載原始碼包

wget http://download.redis.io/releases/redis-3.2.9.tar.gz(根據需要下載自己版本)

3.解壓原始碼 

tar -zxvf redis-3.2.9.tar.gz

4.進入解壓後的目錄進行編譯

cd redis-3.2.9

5.安裝到指定目錄,如 /usr/local/redis

  make PREFIX=/usr/local/redis install

6.拷貝配置檔案到安裝目錄下進入原始碼目錄,裡面有一份配置檔案 redis.conf,然後將其拷貝到安裝路徑下

cd /usr/local/redis

mkdir conf

cp /home/tools/redis-3.2.9/redis.conf /usr/local/redis/conf/

redis啟動

前端模式啟動

         直接執行bin/redis-server將以前端模式啟動,前端模式啟動的缺點是ssh命令視窗關閉則redis-server程式結束,不推薦使用此方法。如下圖:

 

後端模式啟動

修改redis.conf配置檔案, daemonize yes 以後端模式啟動。

執行如下命令啟動redis:(要在安裝目錄中)

./bin/redis-server ./redis.conf

啟動多個redis程序

啟動多個redis程序意義:一個redis代表一個redis服務(伺服器)。

 方法1:

啟動時指定埠可在一臺伺服器啟動多個redis程序。(接著上面6379的redis)

./bin/redis-server ./redis.conf --port 6380

 

方法2(推薦此方法):

  1. 建立多個redis目錄,以埠號命名,比如:建立6379、6380兩個目錄,將redis的安裝檔案bin和conf中檔案拷貝至這兩個目錄。
  2. 修改6379目錄下的redis.conf設定埠號為6379
  3. 修改6380目錄下的redis.conf設定埠號為6380
  4. 啟動6379和6380目錄下的redis-server程式:
cd 6379

./bin/redis-server . /redis.conf

cd 6380

./bin/redis-server . /redis.conf

redis停止

強行終止Redis程序可能會導致redis持久化資料丟失。正確停止Redis的方式應該是向Redis服務傳送SHUTDOWN命令,方法為:

./bin/redis-cli shutdown save 

連線本機6379埠的redis服務執行shutdown   停止

save:在停止redis服務之前將所有的資料持久化儲存。

停止6380的redis,執行:

./bin/redis-cli -p 6380 shutdown save 

redis客戶端

 學習意義:redis是服務端,要操作服務端(存取資料)是通過客戶端。

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

 連線redis服務端

執行bin/redis-cli連線redis服務端:(-h ip 根據實際輸入)

到此redis的安裝和redis服務的啟動和客服端的連線就完畢了。

 

複製:

通常為被複制方(master)主動將資料傳送到複製方(slave),複製方接收到資料儲存在當前例項,最終目的是為了保證雙方的資料一致,同時也是降低了master的壓力。

Redis的複製方式有兩種,一種是主(master)-從(slave)模式,一種是從(slave)-從(slave)模式.

 複製流程圖

1、slave向master傳送sync命令。

2、master開啟子程序執行bgsave寫入rdb檔案,同時將子程序接收到的寫命令快取起來。

3、子程序寫完,父程序得知,開始將RDB檔案傳送給slave。

4、master傳送完RDB檔案,將快取的命令也發給slave。

5、master增量的把寫命令發給slave。

主從複製:

第1步:cp reids.conf redis2.conf(複製兩個redis.conf配置檔案,一個用來作為master的,一個是slave,我是使用上面啟動多個redis程序的方法2的)

第2步:Vim redis2.conf(slave)修改6380中配置檔案讓6380作為6379的從機

第3步:slaveof 192.168.0.12 6379(master的地址)

第4步:Vim redis.conf master)6379

第5步:bind  0.0.0.0 #無ip 都可以訪問(或者是本機的ip因為是一個主機模擬的)

第6步:./redis-server ../redis.conf   #master(啟動6379的redis)

第7步./redis-server ../redis.2conf  #slave (啟動6380的redis)

Ps:是否成功set get請求來判斷或執行info命令role

從上面看6379是作為主機master了,我們再看看6380的

判斷是否成功:

1、master客戶端set值,slave客戶端能不能獲取到

2、config get 'slaveof*'

到此redis的master和slave就搭建完畢。