1. 程式人生 > 實用技巧 >【那些年我們用過的Redis】Linux下Redis安裝與使用

【那些年我們用過的Redis】Linux下Redis安裝與使用

一款由C編寫的開源、基於記憶體、單執行緒、可持久化的NoSql資料庫。

環境與版本

linux環境為騰訊雲單核``CentOS7.2.1511
redis版本為5.0.9Redis官方下載地址.

為什麼不安裝redis6版本?

CentOS7,原裝的gcc版本為4.8.5。安裝redis6需要升級gcc版本,目前最新的gcc版本為gcc10,辣條君嘗試安裝gcc9版本,發現編譯2個多小時都沒有結束。網上說,編譯時可以使用make -j4,可以開啟多程序編譯,but辣條君的伺服器是單核的,遂放棄升級gcc,乖乖的安裝redis5。redis5誕生於2018年底,基本功能蠻強大了。

安裝

可以使用wget命令下載redis安裝包,或者從官網上下載安裝包copy到你的環境中。

# 下載
cd /usr/local/
wget http://download.redis.io/releases/redis-5.0.9.tar.gz 
# 解壓
tar -zxvf redis-5.0.9.tar.gz 

編譯

cd /redis-5.0.9
make
make install PREFIX=/usr/local/redis

此時,檢視/usr/local/redis/bin路徑會發現redis可執行檔案。將常用的可執行檔案放到環境變數中。

cd ..
cd redis/bin/
# 一般都具有超級許可權,sudo可以去掉
sudo cp redis-cli redis-server redis-sentinel /usr/local/bin

此時,你的redis就可以啟動使用了,為了便於管理檔案,咱們把配置檔案放到合適的位置,並修改下配置檔案。

cd /usr/local/redis-5.0.9/
# 咱們使用的配置檔案在 /usr/local/redis.conf
cp redis.conf /usr/local/
cd..
# 使用vim 檢視並修改redis.conf
vim redis.conf

修改配置檔案

咱們使用vim修改部分引數,其他預設就好。

# 主機地址,預設是127.0.0.1,修改成0.0.0.0
bind 0.0.0.0
# 埠 預設就好
port 6379
# 是否開啟為守護執行緒,預設是no,改成yes
daemonize yes
# 指定redis程序的PID檔案存放位置 給檔案重新命名
pidfile /var/run/redis_6379.pid
# 日誌存放位置 給檔案重新命名
logfile /var/log/redis_6379.log
# rdb模式持久化快照,預設就好
dbfilename dump.rdb
# 持久化檔案存放位置 預設就好
dir ./
# redis連線密碼
requirepass 123456

以上,可以根據註釋很好的理解並修改部分配置檔案。具體解釋下幾個引數:

bind設定成0.0.0.0,是為了保證本伺服器以外的客戶端可以訪問本redis服務。

daemonize設定成yes,將redis服務變成守護程序。在該模式下,redis會在後臺執行,並將程序pid號寫入至redis.conf選項pidfile設定的檔案中,此時redis將一直執行,除非手動kill該程序。daemonize選項設定成no時,當前介面將進入redis的命令列介面,exit強制退出或者關閉連線工具(putty,xshell等)都會導致redis程序退出。

requirepass :如果你是雲服務,這個密碼一定要設定!否則,伺服器很容易被某些人拿去當礦機,就是所有服務都給你停掉,只開起挖礦程式,那你真成了打工人了。別問辣條君怎麼知道的。。

啟動與使用

啟動so easy,就一行。

redis-server /usr/local/redis.conf
# 檢視一下是否啟動
ps -ef | grep redis
# 發現程序說明OK了
root     11890     1  0 Nov04 ?        00:02:39 redis-server 0.0.0.0:6379

咱們的使用,分為3種情況:本伺服器內使用、其他機器(你的個人電腦)視覺化客戶端使用、其他機器(你的個人電腦)cli客戶端使用。

  1. 首先看本伺服器內使用
redis-cli -h 127.0.0.1 -p 6379 -a 123456
# 然後終端字首會變成
127.0.0.1:6379>
# 使用一下
127.0.0.1:6379> set name pjjlt
OK
127.0.0.1:6379> get name
"pjjlt"
  1. 其他機器(你的個人電腦)視覺化客戶端使用

直接說吧,使用Redis Desktop Manager可以連線並維護資料。

  1. 其他機器(你的個人電腦)cli客戶端使用

在你個人電腦,開啟cmd,利用redis-cli連線redis服務,發現gg。這時,需要在我們Linux伺服器上開啟防火牆,利用iptables

iptables其實不是真正的防火牆,我們可以把它理解成一個客戶端代理,使用者通過iptables這個代理,將使用者的安全設定執行到對應的"安全框架"中,這個"安全框架"才是真正的防火牆,這個框架的名字叫netfilter。

安裝並使用iptables

# 關閉防火牆
systemctl stop firewalld 
# 安裝
yum install iptables-services
# 啟動
systemctl enable iptables
# 開啟
systemctl start iptables
# 暴露埠配置
iptables -I INPUT -p tcp -m tcp --dport 6379 -j ACCEPT
# 儲存配置
service iptables save
# 重啟 iptables 服務
service iptables restart
# 檢視下 iptable配置
iptables -L -n -v
# 發現 6379埠暴露出去了
21169 1657K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:6379

ok,至此,其他機器上的cli也可以訪問我們的Redis服務了。