標籤:
一、何為Redis
redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對更多,包括string(字串)、list(鏈表)、set(集合)和zset(有序集合)。這些資料類型都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是緩衝在記憶體中。區別的是redis會周期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。Redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部分場合可以對關聯式資料庫起到很好的補充作用。
二、安裝Redis
1、安裝前環境說明
樓主使用的是CentOS 6.5版本的Linux系統,IP為192.168.0.100。虛擬機器工具使用的是VirtualBox。
2、下載Redis
Redis可以到官方網站上面進行下載:http://www.redis.io/download,現在最新的穩定版已經到2.8了。
這裡使用的是redis-2.8.8.tar.gz。
3、安裝步驟
下載redis-2.8.8.tar.gz使用ftp上傳到linux系統的/opt目錄下。
1)解壓
進入linux系統的/opt目錄下,執行如下命令進行解壓:tar -zxvf redis-2.8.8.tar.gz。
解壓之後會在目前的目錄下多出redis-2.8.8的檔案夾,為了方便,我們將其改名:mv redis-2.8.8 redis。
解壓之後Redis的目錄結構如所示:
2)編譯與安裝
進入Redis目錄下的src目錄下,執行make命令來編譯Redis。當樓主執行編譯命令的時候,編譯失敗了,報了“/bin/sh: cc: command not found”的錯誤。原來是樓主的linux系統木有裝gcc,而Redis是C實現的,所以需要gcc來進行編譯。在網上搜尋之後,發現一篇文章,按照文章上面的步驟解決了樓主的問題,在此表示感謝!下面附上該文章的串連:http://xueliang1yi.blog.163.com/blog/static/1145570162012102114635764/,有遇到該問題的朋友可以參考一下。
安裝完gcc之後,依次執行如下命令即可完成Redis的安裝:
make
make test //檢查一下 看有沒有問題
make install
安裝完之後,會在src目錄下產生幾個可執行檔,分別是mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server。其中redis-server是啟動Redis服務的,redis-cli是進入Redis用戶端的。
3)配置
在Redis的根目錄下面有一個設定檔redis.conf,該設定檔可以對Redis進行基本的配置,配置參數可以查看《Redis配置參數說明》。樓主最開始只是簡單的將daemonize參數設定為yes,目的是將Redis服務設定為後台開啟,這樣服務開啟後就不會佔用當前session了。
4、測試
安裝完之後,我們來對其進行測試。
首先,為了方便起見,我們將src下的可執行命令全部移動到/usr/local/redis/bin/目錄下,執行該命令:mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/bin,然後將設定檔移動到/usr/local/redis/etc/目錄下,執行該命令:mv redis.conf /usr/local/redis/etc/。
進入/usr/local/redis/bin/目錄下執行./redis-server /usr/local/redis/etc/redis.conf命令開啟Redis服務。注意:開啟redis服務需要指定設定檔,如不指定設定檔則載入預設設定檔。
開啟之後我們執行netstat -tunpl | grep 6379命令來查看6379連接埠使用方式,如果出現情況,則說明6379連接埠已經被redis-server佔用了,表示redis服務已經成功啟動。
然後執行./redis-cli進入redis用戶端,然後進行簡單的set、get操作來測試一下。
好,到此Redis已經成功安裝了。
三、Redis主從配置
Redis的主從複製功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級伺服器叢集架構。下面樓主簡單的進行一下配置。
1、上面安裝好的一個Redis作為master,然後使用VirtualBox的虛擬機器複製功能將剛剛那個linux系統複製一份作為slave,並修改其IP為192.168.0.110。
2、修改slave的redis設定檔:
slaveof 192.168.0.100 6379 (映射到主伺服器上)
如果master設定了驗證密碼,還需配置masterauth。樓主的master設定了驗證密碼為admin,所以配置masterauth admin。
配置完之後啟動slave的Redis服務,OK,主從配置完成。下面測試一下:
在master和slave分別執行info命令,查看結果如下:
master:
slave:
然後在master執行set age 24
在slave執行get age,看是否能得到24,如果能夠得到值則說明配置成功。
Redis的安裝及配置