linux下redis的安裝部署及單機多節點集羣搭建過程

前言
redis是非關係型數據庫,本質是一個基於內存的數據庫,所有數據和結構都存儲在內存中,所以redis所有的操作都非常高速。它支持數據的備份,即master-slave模式的數據備份,支持數據的持久化,可以將內存中的數據保存在磁盤中,具有兩種持久化方式----RDB方式和AOF方式。具有客戶端和服務端兩部分,客戶端和服務端可以部署在不同的機器上,他們直接通過自定義的協議交互,平時說的redis通常指的是服務端。端口號默認爲6379,因爲 6379 在手機按鍵上 MERZ 對應的號碼,而據說 MERZ 取自意大利歌女 Alessia Merz 的名字

主要有多數據庫和事務兩個特性,默認支持16個數據庫,客戶端與Redis建立連接後會自動選擇0號數據庫;並且redis的事務和關係型的事務不一樣,傳統的數據庫事務一組操作單元,要麼全部成功,要麼全都失敗,而Redis在執行一個命令集合的時候,可能會出現集合的一些命令成功,一些命令失敗。

Redis有五種數據類型,分別是String、List、Set、Hash和Sorted Set(zset)
String 可以是字符串、整數或浮點,統稱爲元素,是 Redis 最基本的數據類型
List是一個序列集合(有序),且每個結點都包好了一個元素 ,按照插入順序排序
Set 各不相同(唯一)的元素,從集合中插入或刪除元素,集合是通過哈希表實現的
Hash是帶key-value 的散列組,其中Key是字符串,value是元素按照key進行增加刪除
Sorted Set(zset) 是帶分數的score-value有序集合,其中score爲浮點,value爲元素

應用場景有緩存、隊列、數據存儲、網站訪問統計和數據過期處理等

一、redis安裝
1、環境準備
yum -y install gcc
redis-4.0.9.tar.gz
CentOS 7.x
2、拷貝到Linux的/usr/local中,執行解壓操作

tar -zxvf redis-4.0.9.tar.gz
mv  redis-4.0.9 redis   #改名

2、編譯安裝

cd redis
make          #編譯
make install  #安裝

4、拷貝配置文件,方便管理
在redis目錄下創建bin和etc文件

mkdir etc  bin

找到redis.conf,將其複製移動到 新建的etc 下

    mv redis.conf /usr/local/redis/etc/
    cd /usr/local/redis/src  #進入src目錄,繼續拷貝以下文件
    mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin/

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
5、啓動redis
在/usr/local/redis/bin/目錄下執行

./redis-server    #啓動redis

在這裏插入圖片描述
這時redis已經成功啓動了,但是因爲是前臺啓動,我們不能做任何操作,關閉窗口,redis就關閉了

5、後臺啓動redis

vim /usr/local/redis/etc/redis.conf

將daemonize屬性改爲yes
在這裏插入圖片描述
然後再次進入usr/local/redis/bin目錄啓動redis

 cd /usr/lcoal/redis/bin
 ./redis-server /usr/local/redis/etc/redis.conf   #指明配置文件啓動redis

在這裏插入圖片描述
6、啓動客戶端

redis-cli       #連接本地的redis服務

在這裏插入圖片描述
redis-cli -h host -p port -a password #客戶端連接遠程服務 指定主機IP和端口號,若有時出現中文亂碼 在 redis-cli 後面加上 --raw就可避免
redis-cli shutdown #停止redis服務,當然也可以強行殺死進程,但是這樣可能會造成持久化的數據丟失

二、ruby安裝
1、環境準備
Ruby是一種純粹的面向對象編程語言。
ruby-2.2.2.tar.gz
CentOS 7.x
2、拷貝到Linux的/usr/local中,執行解壓操作

tar zxvf ruby-2.2.2.tar.gz 
mv ruby-2.2.2 ruby  #改名

3、編譯安裝

cd ruby   #進入ruby安裝目錄
./configure 
make 
make install
export PATH=/usr/local/ruby/bin:$PATH   #環境變量設置

問題:ERROR: Loading command: install (LoadError) cannot load such file – zlib ERROR: While executing gem … (NoMethodError) undefined method `invoke_with_build_args’ for nil:NilClass
解決方法: yum -y install zlib zlib-devel
問題:ERROR: Loading command: install (LoadError) cannot load such file – openssl
解決方法:yum -y install openssl openssl-devel

4、檢測是否安裝好

ruby -v

在這裏插入圖片描述
三、rubygems安裝
1、環境準備
RubyGems 是 Ruby 的一個包管理器,它提供一個分發 Ruby 程序和庫的標準格式,還提供一個管理程序包安裝的工具
rubygems-3.0.6.tgz
CentOS7.x
2、拷貝到Linux的/usr/local中,執行解壓操作

tar -zxvf rubygems-3.0.6.tgz

3、進入解壓目錄,執行命令

cd rubygems-3.0.6
ruby setup.rb #若提示ruby命令沒找到 但是ruby已經安裝了 可能是因爲沒添加到環境變量

在這裏插入圖片描述
四、redis-3.2.1.gem安裝(redis和ruby的 接口程序)
1、將軟件上傳到/usr/local目錄下
2、執行命令

gem install -l redis-3.2.1.gem

在這裏插入圖片描述
五、redis單機多節點集羣搭建
1、創建節點
我們先在根目錄下創建一個redis_cluster目錄,因爲要搭建三主三從總共六個節點,在redis_cluster目錄下再創建六個節點目錄

mkdir /redis_cluster
cd /redis_cluster
mkdir redis_7001 redis_7002 redis_7003 redis_7004 redis_7005 redis_7006    #創建節點目錄

在這裏插入圖片描述
2、修改配置
分別複製redis安裝目錄下的redis.conf配置文件到/redis_cluster下的六個節點目錄中,如上圖
以redis_7001爲例

cp /usr/local/redis/etc/redis.conf   /redis_cluster/redis_7001/

按照類似操作依次複製到redis_7002-7006節點目錄當中
接下來要分別修改這六個節點的配置文件

以redis_7001爲例:

port 7001  //六個節點配置文件端口分別是7001-7006
daemonize yes        //redis後臺運行
pidfile /var/run/redis_7001.pid   //pidfile文件對應7001-7006
cluster-enabled yes   //開啓集羣
cluster-config-file nodes_7001.conf  //保存節點配置,自動創建,自動更新對應7001-7006
cluster-node-timeout 5000    //集羣超時時間,節點超過這個時間沒反應就斷定是宕機
appendonly yes   //存儲方式,aof,將寫操作記錄保存到日誌中

注意:根據不同的節點目錄按相應要求修改即可,上述操作的要去掉前面的# 否則被註釋,該行不起作用

3、啓動節點的redis
爲方便啓動,可以寫一個啓動腳本,以後每次啓動執行腳本即可
腳本內容如下:

#!/bin/bash
#redis server start

cd /usr/local/redis/bin/
./redis-server /redis_cluster/redis_7001/redis.conf
./redis-server /redis_cluster/redis_7002/redis.conf
./redis-server /redis_cluster/redis_7003/redis.conf
./redis-server /redis_cluster/redis_7004/redis.conf
./redis-server /redis_cluster/redis_7005/redis.conf
./redis-server /redis_cluster/redis_7006/redis.conf

執行腳本,啓動6個節點

sh openredis.sh  #openredis.sh是我的腳本名

查看redis是否啓動

ps aux | grep redis

在這裏插入圖片描述
4、創建集羣
複製redis的src目錄下的redis-trib.rb文件到redis-cluster目錄

cp  /usr/local/redis/src/redis-trib.rb   /redis_cluster/
cd /redis_cluster  
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006    #--replicas 1 表示爲每個主節點創建一個從節點

5、驗證

cd /usr/local/redis/bin    #即redis-cli所在的目錄
./redis-cli -c -p 7001 #-c 代表集羣模式 -p 表示端口號-h表示主機地址

在這裏插入圖片描述
6、一些簡單操作
刪除從節點

./redis-trib.rb del-node 127.0.0.1:7001 97093dbf1f03d773400423feed29c24c8995284b

127.0.0.1:7001 從節點;97093dbf1f03d773400423feed29c24c8995284b 從節點ID

添加從節點

./redis-trib.rb add-node --slave --master-id be76239d591b88a5dd0c7fa686dc1c1792abdda4 127.0.0.1:7004 127.0.0.1:7005

–slave 表示添加的是從節點
-master-id be76239d591b88a5dd0c7fa686dc1c1792abdda4 主節點的node-id
127.0.0.1:7004 主節點

查看集羣節點

cluster nodes

查看key對應的slot

cluster keyslot key

查看slot和節點的對應關係

cluster slots

查看集羣信息

cluster info

(注:部分資料來源於網絡,如有侵權,請聯繫作者)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章