Redis——急速安裝並設置自啟(CentOS)

現狀

對於開發人員來說,部署伺服器環境並不是一個高頻操作。所以就導致絕大部分開發人員不會花太多時間去學習記憶,而是直接百度(有一些同學可能連鏈接都懶得收藏)。所以到了部署環境的時候就頭疼,甚至是抗拒。除了每次都要折騰個把小時(甚至更久)以外,還會覺得:我是開發不是運維,為什麼要搞這些?有這種想法無可厚非,但公司沒有運維崗位的時候,是不是必須你來做?所以抱怨是沒用的,提升效率才是解決問題的根本。這篇文章可以讓你脫離苦海,10分鐘搞定redis安裝+服務自啟,仔細看。

分析

現有兩種比較實在的解決方案:

其一是通過docker安裝redis,把配置文件通過資料卷和本地文件掛鉤。

其二就是通過shell腳本來幫助我們完成這些機械化的操作。

第一種對新手很不友好,你需要查閱更多的資料,試更多的錯,如果你急於完成工作任務,反而會給你造成更多困擾。為了能真正幫到大家,本文說一下第二種,直接進入正題。

編寫腳本

首先,進入伺服器任意目錄執行以下命令:

vi redis-install.sh

進入vi編輯器,點擊i開啟編輯模式後,把下面程式碼粘貼進去(版本、安裝目錄根據自己需要更改):

#!/bin/bash

version="6.2.2"

echo "==========檢查並安裝gcc=========="
yum install -y gcc

echo "==========切換目錄=========="
cd ~

echo "==========下載壓縮包=========="
wget https://download.redis.io/releases/redis-${version}.tar.gz

echo "==========解壓到當前目錄=========="
tar xzf redis-${version}.tar.gz

echo "==========刪除無用文件=========="
rm redis-${version}.tar.gz

echo "==========切換目錄=========="
cd redis-${version}

echo "==========開始編譯=========="
make

echo "==========開始安裝=========="
make install PREFIX=/usr/local/redis

echo "==========配置文件=========="
cp ~/redis-6.2.2/redis.conf /usr/local/redis/bin/

echo "==========安裝完成=========="

然後:按下esc——輸入冒號——輸入wq——回車

安裝和配置

shell腳本已經寫好了,通過sh命令執行:

sh redis-install.sh

執行完畢時就完成安裝操作了。

然後切換到安裝目錄:

cd /usr/local/redis/bin

此目錄下有個redis.conf的文件,打開並修改下面這幾項(根據自己需求來):

//是否允許後台啟動
daemonize no 改為 yes

//設置密碼
requirepass your password

//允許的最大物理存儲空間(示例為1gb)
maxmemory 1073741824

//淘汰規則,規定空間不夠用時如何淘汰已有鍵
maxmemory-policy volatile-ttl

服務自啟

切換到任意目錄,執行以下命令新建服務:

vi /etc/systemd/system/redis.service

和剛才的vi一樣,按下i進入編輯模式,然後拷貝下面程式碼:

[Unit]
Description=redis
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

按下esc——輸入冒號——輸入wq——點擊回車。

然後重載本地服務:

systemctl daemon-reload

啟動剛才手寫的服務:

systemctl start redis.service

設置開機啟動:

systemctl enable redis.service

如果沒有任何回饋,代表啟動成功,可以用客戶端軟體鏈接測試了。

還有一點

這篇文章寫的十分照顧小白(甚至連vi的基本操作都講了),沒有深入去講,基本任誰c+v就能用,因為這一篇的內容就是用來提升工作效率的。

過幾天有時間的話,我會把上面提到的方案一寫出來,有興趣可以追一下。