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