1. 程式人生 > 其它 >Centos7.x 線上安裝Redis

Centos7.x 線上安裝Redis

一、下載Redis

官網下載地址: https://redis.io/download

# 進入控制檯,切換目錄到自定義的軟體下載存放目錄
cd /home/mysoftware/redis
# 執行下載命令
wget http://download.redis.io/releases/redis-5.0.7.tar.gz

二、安裝Redis

1、解壓

# 下載完成後執行解壓命令
tar -zvxf redis-5.0.7.tar.gz
# 檢視解壓後的檔案,多了一個redis-5.0.7資料夾
ls

2、自定義安裝目錄

通常將redis安裝到到 /usr/local/redis目錄

# 移動並重命名
mv redis-5.0.7 /usr/local/redis

3、編譯

# 切換至安裝包目錄
cd /usr/local/redis
# 執行編譯
make

如果報錯如下:說明缺少gcc環境

執行下面命令安裝gcc-c++依賴

# 安裝c++依賴
yum install gcc-c++

安裝完執行make,如果還報錯,則執行下面命令

# 清除上次編譯失敗的檔案並重新編譯
make distclean  && make

編譯成功

說明:上面錯誤的本質是我們在執行make編譯時由於缺少gcc依賴導致錯誤,安裝gcc 後,再次執行make編譯 ,出現jemalloc/jemalloc.h: No such file or directory,是因為上次的編譯失敗後有殘留的檔案,清理後重新編譯即可。

4、安裝

# 執行安裝命令
make PREFIX=/usr/local/redis install

說明: PREFIX= 關鍵字的作用是編譯時用於指定程式存放的路徑。比如我們現在就是指定了redis必須存放在/usr/local/redis目錄。假設不新增該關鍵字Linux會將可執行檔案存放在/usr/local/bin目錄,庫檔案會存放在/usr/local/lib目錄。配置檔案會存放在/usr/local/etc目錄。其他的資原始檔會存放在usr/local/share目錄。這裡指定號目錄也方便後續的解除安裝,後續直接rm -rf /usr/local/redis 即可刪除redis。

5、啟動redis

# 在/usr/local/redis目錄下執行啟動命令 

# 使用bin目錄下的redis-server和redis-cli,讀取配置檔案不生效
./bin/redis-server ./redis.conf
# 使用src目錄下的redis-server和redis-cli,讀取配置檔案生效
./src/redis-server ./redis.conf

上面的啟動方式是採取後臺程序方式

下面是採取顯示啟動方式(如在配置檔案設定了daemonize屬性為yes則與後臺程序方式啟動一樣)。

兩種方式區別無非是有無帶符號&的區別。 redis-server 後面是配置檔案,目的是根據該配置檔案的配置啟動redis服務。redis.conf配置檔案允許自定義多個配置檔案,通過啟動時指定讀取哪個即可。

6、redis.conf配置檔案

# 配置檔案redis.conf存在路徑,可通過vim、vi、cat等方式檢視或編輯配置資訊cd /usr/local/redis# 通過redis-cli命令進入redis控制檯後通過CONFIG GET * 的方式讀取所有配置項./redis-cliconfig get *

配置項說明:

配置項名稱 可選值 說明
daemonize yes、no yes表示啟用守護程序,預設是no即不以守護程序方式執行。其中Windows系統下不支援啟用守護程序方式執行
port 指定 Redis 監聽埠,預設埠為 6379
bind 繫結的主機地址,如果需要設定遠端訪問則直接將這個屬性備註下或者改為bind * 即可,這個屬性和下面的protected-mode控制了是否可以遠端訪問 。
protected-mode yes 、no 保護模式,該模式控制外部網是否可以連線redis服務,預設是yes,所以預設我們外網是無法訪問的,如需外網連線rendis服務則需要將此屬性改為no。
timeout 300 當客戶端閒置多長時間後關閉連線,如果指定為 0,表示關閉該功能
loglevel debug、verbose、notice、warning 日誌級別,預設為 notice
databases 16 設定資料庫的數量,預設的資料庫是0。整個通過客戶端工具可以看得到
rdbcompression yes、no 指定儲存至本地資料庫時是否壓縮資料,預設為 yes,Redis 採用 LZF 壓縮,如果為了節省 CPU 時間,可以關閉該選項,但會導致資料庫檔案變的巨大。
dbfilename dump.rdb 指定本地資料庫檔名,預設值為 dump.rdb
dir 指定本地資料庫存放目錄
requirepass 設定 Redis 連線密碼,如果配置了連線密碼,客戶端在連線 Redis 時需要通過 AUTH 命令提供密碼,預設關閉
maxclients 0 設定同一時間最大客戶端連線數,預設無限制,Redis 可以同時開啟的客戶端連線數為 Redis 程序可以開啟的最大檔案描述符數,如果設定 maxclients 0,表示不作限制。當客戶端連線數到達限制時,Redis 會關閉新的連線並向客戶端返回 max number of clients reached 錯誤資訊。
maxmemory XXX 指定 Redis 最大記憶體限制,Redis 在啟動時會把資料載入到記憶體中,達到最大記憶體後,Redis 會先嚐試清除已到期或即將到期的 Key,當此方法處理 後,仍然到達最大記憶體設定,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis 新的 vm 機制,會把 Key 存放記憶體,Value 會存放在 swap 區。配置項值範圍列裡XXX為數值。
vim /usr/local/redis/redis.conf# 設定為守護程序,不然每次啟動都得在redis-server命令後面加符號&daemonize:yes# 取消訪問ip繫結限制# bind:127.0.0.1# 取消保護模式,外網可訪問protected-mode no

7、檢視Redis是否正在執行

1、採取檢視程序方式

ps -ef | grep redis

結果如下圖:

8、關閉執行中的Redis服務

輸入redis-cli 進入控制檯後輸入命令shutdown即可關閉執行中的Redis服務了。如下圖:

Redis使用ip無法連線問題解決辦法:

# 註釋掉bind# bind 127.0.0.1# 將預設的yes設定為noprotected-mode no# 為redis設定密碼requirepass redis