Linux安裝Redis

參考文章:https://www.cnblogs.com/hunanzp/p/12304622.html

Redis版本 5.0.4
服務(wù)器版本 Linux CentOS 7.6 64位

1.下載redis
進(jìn)入官網(wǎng)找到下載地址 https://redis.io/download

右鍵Download按鈕,選擇復(fù)制鏈接。
進(jìn)入到Xshell控制臺(tái)(默認(rèn)當(dāng)前是root根目錄),輸入wget 將上面復(fù)制的下載鏈接粘貼上,如下命令:

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

解壓并安裝Redis
下載完成后需要將壓縮文件解壓,輸入以下命令解壓到當(dāng)前目錄

tar -zvxf redis-5.0.7.tar.gz

解壓后在根目錄上輸入ls 列出所有目錄會(huì)發(fā)現(xiàn)與下載redis之前多了一個(gè)redis-5.0.7.tar.gz文件和 redis-5.0.7的目錄。

移動(dòng)redis目錄
一般都會(huì)將redis目錄放置到 /usr/local/redis目錄,所以這里輸入下面命令將目前在/root目錄下的redis-5.0.7文件夾更改目錄,同時(shí)更改文件夾名稱(chēng)為redis。

mv /root/redis-5.0.7 /usr/local/redis

cd 到/usr/local目錄下輸入ls命令可以查詢到當(dāng)前目錄已經(jīng)多了一個(gè)redis子目錄,同時(shí)/root目錄下已經(jīng)沒(méi)有redis-5.0.7文件夾

編譯
cd到/usr/local/redis目錄,輸入命令make執(zhí)行編譯命令,接下來(lái)控制臺(tái)會(huì)輸出各種編譯過(guò)程中輸出的內(nèi)容。

make

安裝
輸入以下命令

make PREFIX=/usr/local/redis install

這里多了一個(gè)關(guān)鍵字 PREFIX= 這個(gè)關(guān)鍵字的作用是編譯的時(shí)候用于指定程序存放的路徑。比如我們現(xiàn)在就是指定了redis必須存放在/usr/local/redis目錄。假設(shè)不添加該關(guān)鍵字Linux會(huì)將可執(zhí)行文件存放在/usr/local/bin目錄,庫(kù)文件會(huì)存放在/usr/local/lib目錄。配置文件會(huì)存放在/usr/local/etc目錄。其他的資源文件會(huì)存放在usr/local/share目錄。這里指定號(hào)目錄也方便后續(xù)的卸載,后續(xù)直接rm -rf /usr/local/redis 即可刪除redis。

執(zhí)行結(jié)果如下圖:

啟動(dòng)redis
根據(jù)上面的操作已經(jīng)將redis安裝完成了。在目錄/usr/local/redis 輸入下面命令啟動(dòng)redis

./bin/redis-server& ./redis.conf

上面的啟動(dòng)方式是采取后臺(tái)進(jìn)程方式,下面是采取顯示啟動(dòng)方式(如在配置文件設(shè)置了daemonize屬性為yes則跟后臺(tái)進(jìn)程方式啟動(dòng)其實(shí)一樣)。

./bin/redis-server ./redis.conf

兩種方式區(qū)別無(wú)非是有無(wú)帶符號(hào)&的區(qū)別。 redis-server 后面是配置文件,目的是根據(jù)該配置文件的配置啟動(dòng)redis服務(wù)。redis.conf配置文件允許自定義多個(gè)配置文件,通過(guò)啟動(dòng)時(shí)指定讀取哪個(gè)即可。

redis.conf配置文件
在目錄/usr/local/redis下有一個(gè)redis.conf的配置文件。我們上面啟動(dòng)方式就是執(zhí)行了該配置文件的配置運(yùn)行的。我么可以通過(guò)cat、vim、less等Linux內(nèi)置的讀取命令讀取該文件。

也可以通過(guò)redis-cli命令進(jìn)入redis控制臺(tái)后通過(guò)CONFIG GET * 的方式讀取所有配置項(xiàng)。 如下:

redis-cli
CONFIG GET *

回車(chē)確認(rèn)后會(huì)將所有配置項(xiàng)讀取出來(lái),如下圖

這里列舉下比較重要的配置項(xiàng)

配置項(xiàng)名稱(chēng) 配置項(xiàng)值范圍 說(shuō)明
daemonize yes、no yes表示啟用守護(hù)進(jìn)程,默認(rèn)是no即不以守護(hù)進(jìn)程方式運(yùn)行。其中Windows系統(tǒng)下不支持啟用守護(hù)進(jìn)程方式運(yùn)行
port 指定 Redis 監(jiān)聽(tīng)端口,默認(rèn)端口為 6379
bind 綁定的主機(jī)地址,如果需要設(shè)置遠(yuǎn)程訪問(wèn)則直接將這個(gè)屬性備注下或者改為bind * 即可,這個(gè)屬性和下面的protected-mode控制了是否可以遠(yuǎn)程訪問(wèn) 。
protected-mode yes 、no 保護(hù)模式,該模式控制外部網(wǎng)是否可以連接redis服務(wù),默認(rèn)是yes,所以默認(rèn)我們外網(wǎng)是無(wú)法訪問(wèn)的,如需外網(wǎng)連接rendis服務(wù)則需要將此屬性改為no。
timeout 300 當(dāng)客戶端閑置多長(zhǎng)時(shí)間后關(guān)閉連接,如果指定為 0,表示關(guān)閉該功能
loglevel debug、verbose、notice、warning 日志級(jí)別,默認(rèn)為 notice
databases 16 設(shè)置數(shù)據(jù)庫(kù)的數(shù)量,默認(rèn)的數(shù)據(jù)庫(kù)是0。整個(gè)通過(guò)客戶端工具可以看得到
rdbcompression yes、no 指定存儲(chǔ)至本地?cái)?shù)據(jù)庫(kù)時(shí)是否壓縮數(shù)據(jù),默認(rèn)為 yes,Redis 采用 LZF 壓縮,如果為了節(jié)省 CPU 時(shí)間,可以關(guān)閉該選項(xiàng),但會(huì)導(dǎo)致數(shù)據(jù)庫(kù)文件變的巨大。
dbfilename dump.rdb 指定本地?cái)?shù)據(jù)庫(kù)文件名,默認(rèn)值為 dump.rdb
dir 指定本地?cái)?shù)據(jù)庫(kù)存放目錄
requirepass 設(shè)置 Redis 連接密碼,如果配置了連接密碼,客戶端在連接 Redis 時(shí)需要通過(guò) AUTH <password> 命令提供密碼,默認(rèn)關(guān)閉
maxclients 0 設(shè)置同一時(shí)間最大客戶端連接數(shù),默認(rèn)無(wú)限制,Redis 可以同時(shí)打開(kāi)的客戶端連接數(shù)為 Redis 進(jìn)程可以打開(kāi)的最大文件描述符數(shù),如果設(shè)置 maxclients 0,表示不作限制。當(dāng)客戶端連接數(shù)到達(dá)限制時(shí),Redis 會(huì)關(guān)閉新的連接并向客戶端返回 max number of clients reached 錯(cuò)誤信息。
maxmemory XXX <bytes> 指定 Redis 最大內(nèi)存限制,Redis 在啟動(dòng)時(shí)會(huì)把數(shù)據(jù)加載到內(nèi)存中,達(dá)到最大內(nèi)存后,Redis 會(huì)先嘗試清除已到期或即將到期的 Key,當(dāng)此方法處理 后,仍然到達(dá)最大內(nèi)存設(shè)置,將無(wú)法再進(jìn)行寫(xiě)入操作,但仍然可以進(jìn)行讀取操作。Redis 新的 vm 機(jī)制,會(huì)把 Key 存放內(nèi)存,Value 會(huì)存放在 swap 區(qū)。配置項(xiàng)值范圍列里XXX為數(shù)值。

這里我要將daemonize改為yes,不然我每次啟動(dòng)都得在redis-server命令后面加符號(hào)&,不這樣操作則只要回到Linux控制臺(tái)則redis服務(wù)會(huì)自動(dòng)關(guān)閉,同時(shí)也將bind注釋?zhuān)瑢rotected-mode設(shè)置為no。
這樣啟動(dòng)后我就可以在外網(wǎng)訪問(wèn)了。

更改方式:

vim /usr/local/redis/redis.conf

通過(guò) /daemonize 查找到屬性,默認(rèn)是no,更改為yes即可。 (通過(guò)/關(guān)鍵字查找出現(xiàn)多個(gè)結(jié)果則使用 n字符切換到下一個(gè)即可,查找到結(jié)果后輸入:noh退回到正常模式)
如下圖:

其他兩個(gè)屬性也是同樣方式查找和編輯即可。

查看Redis是否正在運(yùn)行
1、采取查看進(jìn)程方式

ps -aux | grep redis

2、采取端口監(jiān)聽(tīng)查看方式

netstat -lanp | grep 6379

redis-cli
redis-cli是連接本地redis服務(wù)的一個(gè)命令,通過(guò)該命令后可以既然怒redis的腳本控制臺(tái)。如下圖:

輸入exit可以退出redis腳本控制臺(tái)

關(guān)閉運(yùn)行中的Redis服務(wù)
輸入redis-cli 進(jìn)入控制臺(tái)后輸入命令shutdown即可關(guān)閉運(yùn)行中的Redis服務(wù)了。如下圖:

遠(yuǎn)程連接不上問(wèn)題
如下圖,已經(jīng)開(kāi)放了Redis服務(wù)的ip不為127.0.0.1,理論上遠(yuǎn)程客戶端應(yīng)該可以連接了,而且云服務(wù)器的端口號(hào)也在安全組里開(kāi)放了。

redis-server 或 redis-server& 這兩種方式都是直接讀取默認(rèn)的配置文件啟動(dòng),無(wú)非前者是顯示啟動(dòng)后者是作為后臺(tái)應(yīng)用啟動(dòng)。我其實(shí)也很納悶,因?yàn)槲倚薷牡木褪悄J(rèn)的配置文件啊,我并沒(méi)有重新生成新的配置文件,但是確實(shí)我輸入命令 redis-server /usr/local/redis/etc/redis.conf 就是能成功,而且我輸入命令redis-server& /usr/local/redis/etc/redis.conf也是遠(yuǎn)程登錄失敗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容