安裝環境說明

  • 虛擬機器軟體:VMware Workstation 16 Pro
  • 主體作業系統:Windows 10
  • 客體作業系統:CentOS7

Redis官網只提供在Linux作業系統上安裝的方式,故此篇文章是在CentOS7作業系統上進行安裝。

一、在CentOS7安裝Python3

CentOS7本身自帶Python2程式,需要另行安裝Python3

我參考的安裝說明: 【Python】在 CentOS 7 上安裝 Python3

# 安裝python3.6版本
sudo yum install python36

# 升級pip套件 
pip3 install --upgrade pip
# 提醒:記得是pip3 若為pip會裝成python2的套件

# 輸入Python3後即會進到Python環境
python3
# 提醒:一定要輸入python3 若輸入python會進到python2.7環境

# 若要離開Python環境回到terminal環境則輸入 `quit()`

二、安裝與連線Redis資料庫

除了在Linux作業系統本機上直接安裝Redis資料庫外,也可利用Docker來安裝

接下來將分別說明本機直接安裝Docker安裝

可自行挑選任一安裝方式

1. 在Linux本機直接安裝Redis資料庫

Step1. 安裝gcc9

在本機安裝需編譯Redis資料庫,故需要安裝gcc,此處安裝gcc第9版

# 首先在CentOS7上安裝gcc
sudo yum -y install centos-release-scl
sudo yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

# scl命令啟用僅在當前shell有效 退出shell後重進會回復成原本設定(即沒有gcc)
scl enable devtoolset-9 bash

# 查看gcc版本
gcc --version

Step2. 安裝Redis

# 取得Redis安裝壓縮檔
wget https://download.redis.io/releases/redis-6.0.10.tar.gz

# 解壓縮
tar xzf redis-6.0.10.tar.gz

# 切換當redis安裝資料夾路徑
cd redis-6.0.10

# 執行編譯
make

安裝成功畫面如下圖所示:

Step3. 執行Redis server

接下來執行redis server

# 執行redis server
src/redis-server

成功執行redis server畫面如下:

執行後畫面會被server綁定,此時需要開新的terminal進行連線

若要終止server運作,可直接按ctrl+c

Step4. 連線Redis server

# 要記得先切換到redis-6.0.10資料夾底下
cd redis-6.0.10

# 執行連線
src/redis-cli

Step5. 測試Redis指令

# 依據官網提供測試程式碼 在Redis環境內執行
set foo bar
get foo

執行結果如下:

Step6. 在Python內執行Redis

我參考的說明:Python redis 使用介绍

若要在CentOS7上執行Python3,直接在terminal上輸入python3,注意這邊不能輸入python,若輸入python會直接進入到python2環境

# 首先安裝python的redis套件
sudo pip3 install redis

# 執行Python3
python3

進到python3環境後,輸入以下指令進行測試:

# 載入套件
import redis

# 連入redis資料庫
r = redis.StrictRedis(host='localhost', port=6379, db=0)

# redis指令
r.set('foo', 'bar')
r.get('foo')

執行成果:

補充: Windows主機直接連線Redis

在虛擬主機上啟動Redis Server後,也可以從Windows的Python連入虛擬機內的Redis資料庫進行操作,此處需要先打開CentOS7防火牆的Port。

在CentOS7執行以下指令:

# 防火牆永久開啟6379的Port  6379為Redis資料庫服務的端口
sudo firewall-cmd --zone=public --permanent --add-port=6379/tcp

設定好防火牆後,重新啟動Redis伺服器,此處需要多加--protected-mode引數,要關閉保護模式才能從Windows連入:

src/redis-server --protected-mode no

此外,還需要設定VMware的Port Forwarding,首先點選Edit->Virtual Network Editor:

啟用管理員權限,這樣才能修改設定:

選擇VMnet8,然後點選NAT Settings:

點選Add:

輸入相關設定,紅框內的IP需依自行的虛擬主機調整:

設定好後一路按ok結束。

接下來打開Windows的PyCharm,安裝Redis套件(pip install redis),接下來輸入以下程式碼即可順利連接。

import redis

# 連入redis資料庫
r = redis.StrictRedis(host='192.168.37.129', port=6379, db=0)
# 此處需要自行調整host引數值,host為虛擬機的IP,可在linux輸入ifconfig查詢

# redis指令
r.set('foo', 'bar')
r.get('foo')

2. 用Docker安裝Redis資料庫

Step1. 安裝CentOS的Docker套件

此處參考周廷諺老師的Docker講義

# 安裝yum管理工具套件
sudo yum install -y yum-utils

# 透過yum管理工具導入docker的repo來源
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安裝docker主程式及所需套件
sudo yum install docker-ce docker-ce-cli containerd.io -y

# 啟動docker
sudo systemctl start docker

# 自動常駐/啟動docker
sudo systemctl enable docker

# 檢查docker是否啟用並常駐
sudo systemctl status docker

# 將當前使用者加入docker群組
sudo usermod -aG docker $USER

# 登出目前使用者
exit

# 重新登入後即可使用docker

Step2. 啟動Docker Redis容器

# 建立Redis資料夾
mkdir redis

# 切換至Redis
cd redis

# 搜尋Redis image
docker search redis

# 下載Redis image
docker pull redis

# 創建並啟動容器 
docker run \
--name redis-lab \
-p 6379:6379 \
-d \
-v $(pwd)/data:/data \
--restart unless-stopped \
redis

# docker run參數說明
# --name: 容器名稱
# -p: 主機port:容器port
# -d: 背景執行
# -v: 主機資料夾:容器資料夾
# --restart: unless-stopped表示除非被手動停止 否則系統重新啟動時該容器即會自動重啟
# 關於--restart引數可參考: https://docs.docker.com/config/containers/start-containers-automatically/

Step3. 在Python內執行redis

進到python3環境後,輸入以下指令進行測試:

# 載入套件
import redis

# 連入redis資料庫
r = redis.StrictRedis(host='localhost', port=6379, db=0)

# redis指令
r.set('foo', 'bar')
r.get('foo')

補充: Windows主機直接連線Redis

在虛擬主機上部署好Docker的Redis Server後,除了在CentOS7的terminal上直接執行外,也可直接在Windows上的Python執行。

Docker部署時會略過防火牆限制,所以不用自行設定防火牆。

此外,還需要設定VMware的Port Forwarding,首先點選Edit->Virtual Network Editor:

啟用管理員權限,這樣才能修改設定:

選擇VMnet8,然後點選NAT Settings:

點選Add:

輸入相關設定,紅框內的IP需依自行的虛擬主機調整:

設定好後一路按ok結束。

接下來打開Windows的PyCharm,安裝Redis套件(pip install redis),接下來輸入以下程式碼即可順利連接。

打開PyCharm,安裝redis套件(pip install redis),,接下來輸入以下程式碼即可順利連接。

import redis

# 連入redis資料庫
r = redis.StrictRedis(host='192.168.37.129', port=6379, db=0)
# 此處需要自行調整host引數值,host為虛擬機的IP,可在linux輸入ifconfig查詢

# redis指令
r.set('foo', 'bar')
r.get('foo')