CentOS 6.5 -- Redis 4.0.2環境搭建、安裝和例項啟動
關於Redis,不做解釋,主要講操作
一、準備一個純淨版的CentOS 6.5
二、SSH工具連線CentOS 64-bit-Redis
三、安裝curl下載工具包
yum install curl
(如果安裝的過程中自動yes,帶上引數 yum-y install curl)
四、利用curl下載 rvm(redis叢集要用到ruby編譯環境,而ruby的下載和安裝,可以直接由rvm版本管理器管理 )
A.沒下載前,rvm找不到組織
B.下載
(1)curl -L get.rvm.io | bash -s stable
此方法已失效,轉到(如果沒失效,基本上不可能的,沒失效,不用管好吧!)
(2)curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
好了,看到上面的提示,我們繼續利用第一步的命令下載rvm管理器
(3)curl -L get.rvm.io | bash -s stable
(4)看到這裡,就表示rvm下載成功了,啟動rvm服務的話,需要
source /etc/profile.d/rvm.sh
C.利用rvm(ruby)版本管理器,下載ruby(注意,redis 4.0.2需要依賴ruby 2.2版本以上,目前最新的ruby版本是2.4.2)
(1)rvm 環境依賴包(需求,這個包比較全)檢查並安裝Installl,此過程需要花費點時間(30s左右)
rvm requirements
(2)再來個yum命令,把依賴包補全,保險起見(沒試過這個不下載安裝會有什麼影響,下了,肯定也不會有什麼影響!)
rvmsudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel
(3)ruby下載安裝,搞起(查詢對應的版本並下載需要點時間,)
rvm install 2.4.2
大概五六分鐘,走完
complete後,我們rvm指定ruby的使用
rvm use 2.4.2
基於以上所有步驟,我們檢視下當前ruby 的gem的版本(gem:一個管理Ruby庫和程式的標準包)
rvm rubygems current
因為,後面需要講到 redis 叢集的模擬,這個會用到 redis-trib.rb可執行檔案,而這個檔案又依賴於ruby環境編譯,因此,上面下載和安裝了一堆,是為後面的redis叢集做鋪墊,最後一步
gem install redis
(需要一段時間)
不用管下載的redis的gem包的版本號,和我們本篇所要安裝的redis版本號不統一的問題,二者不是一個,但肯定互相相容
五、安裝Redis 4.0.2
(1)在 /usr/local/src/ 目錄下,建立 redis 目錄
(2)在當前redis目錄,使用wget下載,redis最新的版本包
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
(3)下載完成後,檢視並解壓
tar -zxvf redis-4.0.2.tar.gz
(4)進入redis-4.0.2目錄,進行make編譯(C)
cd redis-4.0.2
make
唰唰唰唰,直到最後完成編譯
(5)編譯完成後,直接install
make install
也是唰唰的(沒有唰唰唰唰的),直到最後install完成
(6)切換到src目錄,ls一下
redis-cli :連線某個節點,預設redis的埠號是 6379
redis-server:啟動redis服務,後跟redis.conf配置檔案,啟動指定redis例項
redis-trib-rb :配置redis叢集,新增,刪除叢集中的節點,以及其他命令操作
(7)啟動redis服務,驗證redis是否已經安裝到位
redis-server
由於,我們尚未啟動任何redis例項(ip+port),因此,redis-cli暫時使用不了,上述輸入 Ctrl + C 退出當前可執行的會話
(8)啟動redis的預設例項,埠號為6379
(1)mkdir 6379 && cp redis-4.0.2/redis.conf 6379/ ---> 建立6379 目錄 + 複製redis.conf至該目錄下
注意:後續我們還會在一臺Linux虛擬機器上模擬多個redis節點(快取資料庫),因此,我們需要把最原始的redis的配置檔案redis.conf拷貝出來,單獨進行配置,目錄名稱我們用資料庫節點的埠號命名
(2)修改6379目錄下面的redis.conf配置檔案
需要修改和注意的幾個地方:
A
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no
把這個改為 yes,例項後臺執行
daemonize yes
B
# Creating a pid file is best effort: if Redis is not able to create it
# nothing bad happens, the server will start and run normally.
pidfile /var/run/redis_6379.pid
這個地方是啟動的例項程序名稱,預設就是這個,知道一下,不用改
C
# Note: you can disable saving completely by commenting out all "save" lines.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
#
# save ""
save 900 1
save 300 10
save 60 10000
這個地方,是redis的持久化操作,就是將記憶體中的資料,定時save到磁碟,預設儲存檔案是dump.rdb(快照模式),當然也可以手動開啟aof模式,二種持久化模式這裡不做說明
這裡不開啟,為了演示後面的redis主從資料架構,註釋掉
#save 900 1
#save 300 10
#save 60 10000
D
# 3) Replication is automatic and does not need user intervention. After a
# network partition slaves automatically try to reconnect to masters
# and resynchronize with them.
#
# slaveof <masterip> <masterport>
這個地方,是設定redis主從資料庫的,瞭解就下,本篇不做修改(開啟)
E
# In short... if you have slaves attached it is suggested that you set a lower
# limit for maxmemory so that there is some free RAM on the system for slave
# output buffers (but this is not needed if the policy is 'noeviction').
#
# maxmemory <bytes>
這個地方是當前例項,在記憶體中儲存的最大記憶體的容量,我們設定為100M(演示的話,綽綽有餘),並開啟(消除註釋)
maxmemory 100m
其他地方不用改了(暫且這些就夠用了),儲存修改並退出:wq!
(3)開啟6379例項
redis-server ./redis.conf
程序檢視
ps -ef|grep redis
(4)連線6379例項,並測試redis快取讀寫資料
以下操作,不涉及快取資料的持久化(我們在配置檔案裡面關閉了預設快照持久化方式),因此,如果下面的例項宕掉了,之前我們在記憶體中設定的資料就會丟失,這個不用擔心,下一篇,會講到redis的主從/主從從資料架構,來實現資料的同步,這種同步自動會完成記憶體中的資料的持久化操作(儲存到dumb.rdb檔案中)
未完待續!