redis簡單瞭解一:(部署/主從複製)

來源:互聯網
上載者:User

標籤:

最近工作用到了關於redis的一些東西,自己也上網查閱了一些資料,發現很多大牛總結都很好,自己也要把學習的點點滴滴記錄下來。

主要看了一些redis的用法,包括redis安裝、redis單例、redis叢集、redis切片的簡單理解。其實使用起來非常方便,也非常簡單。對於一些比較深奧的東西還沒研究到,只是一些簡單的使用方法。

下面就進入正題吧:

一、單機部署

首先什麼是redis呢?redis應該是一個類似於key-value的儲存系統,當然他也支援幾種資料結構,如:String、list、set、zset、hash。一般在工作過程中會作為資料緩衝,當然redis也是支援持久化的。

由於是在mac上安裝和學習的,所以這邊只講關於mac上的一些安裝部署等,基本跟linux環境下類似。

關於redis,在學習之前需要安裝三個東西:1、ruby 2、rubygem 3、redis。其中ruby和rubygem暫且理解為外掛程式吧,需要安裝的東西將在部署的過程中進行說明。

一、首先下載redis,網上也有多的例子,這裡下載的是redis3.0.2版本, 下載完成後本地解壓縮,進入解壓目錄下src目錄輸入make命令進行redis安裝。注意 、當進行到這邊的時候遇到一個小問題,報了一個找不到make命令的錯誤,最後的解決方案是在終端輸入命令xcode-select --install進行安裝命令列外掛程式即可,當然網上也有好多解決方案是先下載一個xcode軟體然後在裡面進行操作,這種方法暫時沒嘗試過,相比較而言xcode-select --install應該簡單一點吧。

安裝完成redis之後,嘗試啟動服務,進入src目錄輸入:./redis-server命令啟動redis,啟動後如。

這樣就啟動完成了。下面就是串連redis,好吧,我們暫時先重新開啟一個終端,然後再次進入src目錄下面,是不是感到比較麻煩,一會下面會慢慢講解,可以後台啟動redis。在src目錄下面輸入./redis.cli串連進入redis如。

 

好了,到現在為止,redis的安裝,啟動還有串連就講完了。這邊我覺得要具體說一下關於redis啟動和串連的兩個命令,這兩個命令其實是帶參數的,在redis啟動的時候如果只輸入./redis-server命令會預設載入redis安裝目錄下的redis.config設定檔。這個設定檔的內容我剔除掉了一些,只給大家留了一些常用的配置,如。

一個參數一個參數的說明:

daemonize:這個就是設定redis後台啟動的配置,如果為false的情況,就會出現上述啟動redis之後不能繼續輸入命令的情況,得重新開啟一個終端才可以。當然這邊我配置的是yes,變成了後台運行。

port:redis的連接埠號碼,供用戶端串連,預設一般是6379。

cluster-enabled:設定為ture表示reids叢集啟用。

cluster-config-file:redis叢集設定檔資訊

cluster-node-timeout:連線逾時時間。

好叻,我們來測試一下剛剛啟動的redis,向裡面放入幾個值然後再取出。

上面是redis預設情況下的啟動,現在我需要修改一下redis的連接埠號碼,預設是6379,連接埠號碼的配置是在redis.conf檔案裡面的,啟動的時候如果redis.server後面不帶參數預設是安裝根目錄下的redis.conf設定檔,現在根目錄下面複製一份redis.conf到src下面開啟修改一下連接埠號碼資訊


將連接埠號碼改成了6378,並且將daemonize改為yes,這時啟動redis命令就要加參數了,應該是./redis.server ./redis.conf(剛剛修改的redis設定檔)。

可以看到redis啟動沒有顯示啟動資訊,這就是把daemonize配置為yes,redis在後台啟動的效果。串連redis也需要通過連接埠號碼進行串連,命令為:

 

2、redis主從複製:

先瞭解一下redis主從的一些特性:

1、redis 使用非同步複製。從 redis 2.8 開始,slave 也會周期性的告訴 master 現在的資料量。

2、一個 master 可以擁有多個 slave,且與slave同步資料是非同步進行的。

3、slave 可以接收來自其他 slave 的串連。

好了,我們還是直接進入實驗吧。

一、redis主從複製

首先開啟三個執行個體,命令分別為:

redis-server --port 1001 --daemonize yes

redis-server --port 1002 --daemonize yes

redis-server --port 1003 --daemonize yes

這裡解釋一下,redis啟動的時候連接埠號碼預設為6379,我們可以通過修改設定檔來修改啟動執行個體的連接埠號碼和後台啟動配置。另外一種方法就是上面這種命令方式,在命令中跟參數--port 1001表示啟動連接埠為1001,--daemonize yes表示預設後台啟動。好了,現在啟動完了三個連接埠號碼分別為1001、1002、1003的執行個體,輸入ps aux|grep redis可以看到當前的redis進程


既然是主從複製,那麼我們要建立主從關係,這裡準備將9002和9003設定為9001的從屬redis,進入串連進入9002和9003,輸入slaveof 127.0.0.1 1001即可:


設定完主從配置,我們來實驗一下,首先看下三台機器上有沒有“test01”這條資料,

 

三個執行個體中都是沒有資料的,現在我們向主redis放入值,

 

再次在10001、02、03上看是否已經有值。


可以看到在9001連接埠上放的值已經同步到9002和9003上了。另外要追加說明一點的是,redis中slave只能讀不去寫入值。

 

redis簡單瞭解一:(部署/主從複製)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.