redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用。
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的主從復制功能非常強大,一個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,如果能夠得到值則說明配置成功。