【那些年我們用過的Redis】Linux下Redis安裝與使用
一款由C編寫的開源、基於記憶體、單執行緒、可持久化的NoSql資料庫。
環境與版本
linux環境為騰訊雲單核``CentOS7.2.1511
。
redis版本為5.0.9
。Redis官方下載地址.
為什麼不安裝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客戶端使用。
- 首先看本伺服器內使用
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"
- 其他機器(你的個人電腦)視覺化客戶端使用
直接說吧,使用Redis Desktop Manager
可以連線並維護資料。
- 其他機器(你的個人電腦)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服務了。