天天看點

Redis開發與運維. 1.5 正确安裝并啟動Redis

<b>1.5 正确安裝并啟動redis</b>

通常來說,學習一門技術最好的方法就是實戰,是以在學習redis這樣一個實戰中産生的技術時,首先把它安裝部署起來,值得慶幸的是,相比于很多軟體和工具部署步驟繁雜,redis的安裝不得不說是非常簡單,本節我們将學習如何安裝redis。

在寫本書時,redis 4.0已經釋出rc版,但是大部分公司還都在使用3.0或更早的版本(2.6或2.8),本書所講的内容基于redis 3.0。

<b>1.5.1 安裝redis</b>

1.?在linux上安裝redis

redis能夠相容絕大部分的posix系統,例如linux、os x、openbsd、netbsd和freebsd,其中比較典型的是linux作業系統(例如centos、redhat、ubuntu、debian、os x等)。在linux安裝軟體通常有兩種方法,第一種是通過各個作業系統的軟體管理軟體進行安裝,例如centos有yum管理工具,ubuntu有apt。但是由于redis的更新速度相對較快,而這些管理工具不一定能更新到最新的版本,同時前面提到redis的安裝本身不是很複雜,是以一般推薦使用第二種方式:源碼的方式進行安裝,整個安裝隻需以下六步即可完成,以3.0.7版本為例:

$ wget

http://download.redis.io/releases/redis-3.0.7.tar.gz

$ tar xzf redis-3.0.7.tar.gz

$ ln -s redis-3.0.7 redis

$ cd redis

$ make

$ make install

1)下載下傳redis指定版本的源碼壓縮包到目前目錄。

2)解壓縮redis源碼壓縮包。

3)建立一個redis目錄的軟連接配接,指向redis-3.0.7。

4)進入redis目錄。

5)編譯(編譯之前確定作業系統已經安裝gcc)。

6)安裝。

這裡有兩點要注意:第一,第3步中建立了一個redis目錄的軟連結,這樣做是為了不把redis目錄固定在指定版本上,有利于redis未來版本更新,算是安裝軟體的一種好習慣。第二,第6步中的安裝是将redis的相關運作檔案放到/usr/local/bin/下,這樣就可以在任意目錄下執行redis的指令。例如安裝後,可以在任何目錄執行redis-cli –v檢視redis的版本。

$ redis-cli -v

redis-cli 3.0.7

第12章将介紹更多linux配置優化技巧,為redis的良好運作保駕護航。

2.?在windows上安裝redis

redis的官方并不支援微軟的windows作業系統,但是redis作為一款優秀的開源技術吸引到了微軟公司的注意,微軟公司的開源技術組在github上維護一個redis的分支:https://github.com/msopentech/redis。

那為什麼redis的作者沒有開發和維護針對windows使用者的redis版本呢?這裡可以簡單分析一下:首先redis的許多特性都是和作業系統相關的,windows作業系統和linux作業系統有很大的不同,是以會增加維護成本,而且更重要的是大部分公司都在使用linux作業系統,而redis在linux作業系統上的表現已經得到了實踐的驗證。對于使用windows作業系統的讀者,可以通過安裝虛拟機來體驗redis的諸多特性。

對windows版本的redis感興趣的讀者,可以嘗試安裝和部署windows版本的redis,但是本書中的知識和例子不能確定在windows下能夠運作。

<b>1.5.2 配置、啟動、操作、關閉redis</b>

redis安裝之後,src和/usr/local/bin目錄下多了幾個以redis開頭可執行檔案,我們稱之為redis

shell,這些可執行檔案可以做很多事情,例如可以啟動和停止redis、可以檢測和修複redis的持久化檔案,還可以檢測redis的性能。表1-2中分别列出這些可執行檔案的說明。

表1-2 redis可執行檔案說明

 可執行檔案  作  用

redis-server     啟動redis

redis-cli    redis指令行用戶端

redis-benchmark      redis基準測試工具

redis-check-aof         redis aof持久化檔案檢測和修複工具

redis-check-dump    redis rdb持久化檔案檢測和修複工具

redis-sentinel  啟動redis sentinel

redis持久化和redis sentinel分别在第5章和第9章才會涉及,redis基準測試将在第3章介紹,是以本節隻對redis-server、redis-cli進行介紹。

1.?啟動redis

有三種方法啟動redis:預設配置、運作配置、配置檔案啟動。

(1)預設配置

這種方法會使用redis的預設配置來啟動,下面就是redis-server執行後輸出的相關日志:

$ redis-server

12040:c 11 jun 17:28:39.464 # warning: no

config file specified, using the

default config. in order to specify a config file use ./redis-server

/path/

to/redis.conf

                _._                                                 

_.-``__ ''-._                                            

_.-``    `.  `_. 

''-._           redis 3.0.7

(00000000/0) 64 bit

.-`` .-```.  ```\/    _.,_ ''-._                                  

 (   

'      ,       .-` 

| `,    )     running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     port: 6379

 |   

`-._   `._    /    

_.-'    |     pid: 12040

`-._    `-._  `-./ 

_.-'    _.-'                                  

 |`-._`-._   

`-.__.-'    _.-'_.-'|                                 

`-._`-._        _.-'_.-'    |          

http:// redis.io       

`-._    `-._`-.__.-'_.-'    _.-'                                  

`-._`-._        _.-'_.-'    |                                 

`-._    `-._`-.__.-'_.-'    _.-'                                   

`-._    `-.__.-'    _.-'                                      

`-._        _.-'                                          

              `-.__.-'                                              

12040:m 11 jun 17:28:39.470 # server

started, redis version 3.0.7

12040:m 11 jun 17:28:39.470 * the server is

now ready to accept connections on

port 6379

可以看到直接使用redis-server啟動redis後,會列印出一些日志,通過日志可以看到一些資訊,上例中可以看到:

目前的redis版本的是3.0.7。

redis的預設端口是6379。

redis建議要使用配置檔案來啟動。

因為直接啟動無法自定義配置,是以這種方式是不會在生産環境中使用的。

(2)運作啟動

redis-server加上要修改配置名和值(可以是多對),沒有設定的配置将使用預設配置:

# redis-server --configkey1 configvalue1

--configkey2 configvalue2

例如,如果要用6380作為端口啟動redis,那麼可以執行:

# redis-server --port 6380

雖然運作配置可以自定義配置,但是如果需要修改的配置較多或者希望将配置儲存到檔案中,不建議使用這種方式。

(3)配置檔案啟動

将配置寫到指定檔案裡,例如我們将配置寫到了/opt/redis/redis.conf中,那麼隻需要執行如下指令即可啟動redis:

# redis-server /opt/redis/redis.conf

redis有60多個配置,這裡隻給出一些重要的配置(參見表1-3),其他配置會随着不斷深入學習進行介紹,第14章會将所有的配置說明進行彙總。

表1-3 redis的基礎配置

配置名     配置說明

port 端口

logfile       日志檔案

dir    redis工作目錄(存放持久化檔案和日志檔案)

daemonize       是否以守護程序的方式啟動redis

redis目錄下都會有一個redis.conf配置檔案,裡面就是redis的預設配置,通常來講我們會在一台機器上啟動多個redis,并且将配置集中管理在指定目錄下,而且配置不是完全手寫的,而是将redis.conf作為模闆進行修改。

顯然通過配置檔案啟動的方式提供了更大的靈活性,是以大部分生産環境會使用這種方式啟動redis。

2.?redis指令行用戶端

現在我們已經啟動了redis服務,下面将介紹如何使用redis-cli連接配接、操作redis服務。redis-cli可以使用兩種方式連接配接redis伺服器。

第一種是互動式方式:通過redis-cli -h {host} -p {port}的方式連接配接到redis服務,之後所有的操作都是通過互動的方式實作,不需要再執行redis-cli了,例如:

redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379&gt; set hello world

ok

127.0.0.1:6379&gt; get hello

"world"

第二種是指令方式:用redis-cli -h ip {host} -p {port} {command}就可以直接得到指令的傳回結果,例如:

redis-cli -h 127.0.0.1 -p 6379 get hello

這裡有兩點要注意:1)如果沒有-h參數,那麼預設連接配接127.0.0.1;如果沒有-p,那麼預設6379端口,也就是說如果-h和-p都沒寫就是連接配接127.0.0.1:6379這個redis執行個體。2)redis-cli是學習redis的重要工具,後面的很多章節都是用它做講解,同時redis-cli還提供了很多有價值的參數,可以幫助解決很多問題,有關于redis-cli的強大功能将在第3章進行詳細介紹。

3.?停止redis服務

redis提供了shutdown指令來停止redis服務,例如要停掉127.0.0.1上6379端口上的redis服務,可以執行如下操作。

$ redis-cli shutdown

可以看到redis的日志輸出如下:

# user requested shutdown...         #用戶端發出的shutdown指令

* saving the final rdb snapshot before

exiting.

#儲存rdb持久化檔案(有關redis持久化的特性在1.2節已經進行了簡單的介紹,rdb是redis的一種

 持久化方式)

* db saved on disk            #将rdb檔案儲存在磁盤上

# redis is now ready to exit, bye bye...   #關閉

當使用redis-cli再次連接配接該redis服務時,看到redis已經“失聯”。

$ redis-cli

could not connect to redis at 127.0.0.1:6379:

connection refused

這裡有三點需要注意一下:

1)redis關閉的過程:斷開與用戶端的連接配接、持久化檔案生成,是一種相對優雅的關閉方式。

2)除了可以通過shutdown指令關閉redis服務以外,還可以通過kill程序号的方式關閉掉redis,但是不要粗暴地使用kill

-9 強制殺死redis服務,不但不會做持久化操作,還會造成緩沖區等資源不能被優雅關閉,極端情況會造成aof和複制丢失資料的情況。

3)shutdown還有一個參數,代表是否在關閉redis前,生成持久化檔案:

redis-cli shutdown nosave|save

繼續閱讀