目錄
內容概括
系統環境
安裝方式
1、apt包管理器安裝
(1)安裝redis服務
(2)安裝客戶端(進入命令行操作使用,包含redis-cli)
(3)安裝檢驗
(4)其他操作
2、解壓縮編譯安裝步驟
(1)安裝依賴
(3)編譯Redis
(4)測試編譯文件(可選)
(5)安裝Redis
(6)啟動Redis
服務啟動可能遇到的問題
(a)Redis推薦配置檢測問題
(b)端口占用問題
(7)安裝檢驗
(8)添加Redis開機自啟服務
內容概括
????????本文主要記錄了Ubuntu服務器中Redis服務的安裝使用,包括apt安裝和解壓縮編譯安裝兩種方式,并對安裝過程中可能出現的問題、解決方案進行說明,以及在手動安裝時,服務器如何添加自定義服務的問題。
系統環境
????????ubuntu-22.04.4-live-server
安裝方式
????????在安裝方式選擇上,如果對于Redis的版本沒有明確要求,可以直接通過apt包管理器命令安裝,簡單快捷,也比較省事。
????????如果對于Redis的版本有明確要求,由于apt軟件源中可用的版本相對較少,這時候可能就需要手動下載對應的版本壓縮包,通過解壓縮編譯安裝,然后手動配置服務,相對來說,這種方式會復雜一點點。
1、apt包管理器安裝
更新apt軟件包索引:sudo apt update(可選)
(1)安裝redis服務
sudo apt install redis-server
(2)安裝客戶端(進入命令行操作使用,包含redis-cli)
sudo apt install redis tools
(3)安裝檢驗
執行 redis-cli?進入redis命令行,在操作界面輸入ping 返回 PONG 說明安裝正確,也可以存取鍵值測試:
(4)其他操作
查看版本:redis-cli -v
查看Redis進程信息:ps -ef | grep redis
此方式版本由apt默認,配置文件默認位于/etc/redis/redis.conf,
如果需要修改Redis配置,可以調整配置文件參數,或者直接替換默認配置文件。
常見配置參數:
bind 127.0.0.1:指定 Redis 綁定的 IP 地址,默認綁定在本地回環地址。
protected-mode yes:保護模式,建議保持開啟。
port 6379:指定 Redis 偵聽的端口。
daemonize no:是否以后臺守護進程方式運行,生產環境中建議設置為 `yes`。
logfile "":指定日志文件路徑,如果不指定,則日志輸出到標準輸出。
dir ./:指定工作目錄,用于存放數據庫文件。
命令查看當前apt軟件源中的可用版本(執行任意一個即可):
?apt info redis-server
apt show -a redis-server
apt-cache madison redis-server
卸載服務:
1)停止redis服務:sudo systemctl stop redis-server
2)卸載redis-server包:sudo apt-get remove --purge redis-server
3)清理殘留包:sudo apt-get remove --purge redis-server
4)清除redis數據目錄(可選):sudo rm -r /var/lib/redis
5)更新apt緩存(可選):sudo apt update
2、解壓縮編譯安裝步驟
Redis不同版本安裝包的下載地址網上很多,這里提供一個華為云的地址,沒有下載地址的話可以先用著,基本上各個版本都有,找到自己需要的版本下載即可:Index of redis-localhttps://mirrors.huaweicloud.com/redis/
(1)安裝依賴
首先,確保你的系統已經安裝了必要的編譯工具和依賴項。
命令行終端運行以下命令安裝:
sudo apt update
sudo apt install build-essential tcl
(2)解壓縮 Redis 包
進入到你下載的自定義版本軟件包目錄,可以在自己建一個項目路徑,專門用于Redis服務。
在這里,如果你是使用遠程連接工具操作服務器,且又是在根目錄下創建的Redis文件目錄,那么上傳文件時,可能會遇到沒有寫入權限的問題,導致上傳失敗:
解決方案有兩種:
1)先將文件上傳到普通用戶目錄,然后使用sudo cp “普通用戶文件地址” “根目錄文件位置” 命令將壓縮包文件拷貝到對應位置,或者mv移動也行。
2)更改根目錄下創建的redis服務目錄的權限,使得其他用戶也具有讀、寫、執行權限,
在文件夾所在目錄位置執行 sudo chmod 777 redis/?即可。
ok,接下來繼續安裝步驟,
這里以 `redis-7.2.4.tar.gz` 為例,上傳到自己的目錄后,解壓縮該文件:
解壓:sudo tar xzf redis-7.2.4.tar.gz
進入解壓后的文件目錄:cd redis-7.2.4
解壓之后可以看到文件夾內的內容:
(3)編譯Redis
在解壓縮后的目錄中,運行命令編譯 Redis:
sudo make
編譯會跑一小會兒,過程中不需要額外操作,等待跑完回到命令行輸入行就行。
編譯完如下:
(4)測試編譯文件(可選)
為了確保編譯后的 Redis 沒有問題,可以運行測試套件:
sudo make test
測試也會跑一小會兒,喝口水吃顆糖做幾個俯臥撐啥的,耐心等待一下即可,如果所有測試都通過,說明編譯成功,完成后如下:
(5)安裝Redis
編譯完成后,即可將 Redis 安裝到系統中:
sudo make install
(6)啟動Redis
加壓縮編譯安裝的Redis服務,配置文件redis.conf就在解壓縮目錄下,同樣可以根據實際需求,進行編輯調整參數,或者替換。
手動啟動:sudo redis-server redis.conf(不帶配置文件參數的話,默認是解壓目錄下的配置文件,解壓目錄下執行,不在解壓目錄下的話,需要加上配置文件的絕對路徑)
服務啟動可能遇到的問題
(a)Redis推薦配置檢測問題
報錯信息如下:
查了下意思是,Redis檢測到系統的內存過度提交(memory overcommit)設置不符合其推薦配置,巴拉巴拉啥的。
解決方式:
默認配置關閉了守護進程方式啟動,使用時一般Redis都是以守護進程方式啟動。
修改配置文件參數,使用守護進程方式啟動即可(常見參數解析方式1有簡單介紹)
(b)端口占用問題

解決方式:
1)更改配置文件中的端口號配置。
2)查看當前進程端口占用情況,找到占用端口的進程,結束其他占用端口的進程(sudo kill -9 <進程號>),之后重新啟動服務即可。
問題解決之后即可正常啟動Redis服務

(7)安裝檢驗
啟動服務之后檢測是否安裝成功、正常使用。
查看版本:redis-server -v,并存取鍵值測試,可以看到正常使用。
(8)添加Redis開機自啟服務
對于手動解壓縮編譯安裝的Redis,每次開機時,如果要使用Redis,還需要手動開啟服務,如果想要服務開機自啟,就需要添加自定義服務了。
自定義服務步驟:
(a)首先,進入系統目錄 /etc/systemd/system/ ,
執行sudo touch redis-server.service 創建一個自定義服務 redis-server.service
(b)然后編輯redis-server.service文件,文件內容模版如下:
[Unit]
Description=redis server
Documentation=https://redis.io/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=redis-server /data/redis/redis.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/redis_6379.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/redis_6379.pid)"[Install]
WantedBy=multi-user.target
需要關注的是 ExecStart=redis-server /data/redis/redis.conf,這里存放的是我們手動啟動的執行命令,需要根據自己配置文件的所在位置自行調整,其他地方基本上都差別不大,有興趣的同學也可以動動小手去查閱一下各項參數的作用。
插播一下:
如果覺得在終端編輯比較慢,也可以在自己找好一個模版,根據自己的配置文件路徑修改完之后,直接將這個自定義文件上傳到此目錄下,效果也一致。
(c)開啟自定義服務
保存自定義服務后,重新加載服務單元文件:sudo systemctl daemon-reload
將自定義的redis服務文件設置為自啟:sudo systemctl enable redis-server.service
啟動自定義服務:sudo systemctl start redis-server.service
查看服務狀態:sudo systemctl status redis-server.service
重啟檢驗開機自啟情況,可以看到效果跟預期一致。
ok,到這里,本次分享記錄也算是結束了,希望能對你有所幫助,當然,也包括記性不太好的我自己,也是時常翻閱自己的記錄和大家的分享。