一、下載Redis版本
1.1 下載壓縮包
登錄 Redis官網 找到最新版本,如下圖:
- 可以直接點擊超鏈接下載最新版本的壓縮包到本地,然后使用
scp
命令推送到服務端,scp
命令拷貝命令如下:
scp ~/Downloads/redis-6.2.6.tar.gz [用戶名]@[服務器地址]:~/
- 也可以右鍵點擊超級鏈接,在彈出的菜單中選擇
復制鏈接地址
,然后登錄服務器使用wget
命令下載壓縮包,示例命令如下:
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
二、編譯安裝Redis
2.1 解壓Redis
使用tar
命令解壓壓縮文件,并移動到/usr/local
目錄下:
tar zxvf redis-6.2.6.tar.gz
mv redis-6.2.6 /usr/local/redis
2.2 編譯&安裝
在/usr/local/redis
目錄下執行編譯和安裝的命令
cd /usr/local/redis
make PREFIX=/usr/local/redis install
這里多了一個關鍵字 PREFIX=
這個關鍵字的作用是編譯的時候用于指定程序存放的路徑。比如我們現在就是指定了redis必須存放在/usr/local/redis目錄,假設不添加該關鍵字Linux會將可執行文件存放在/usr/local/bin目錄。如果編譯成功將輸出類似下面的信息:
......
Hint: It's a good idea to run 'make test' ;)
INSTALL redis-server
INSTALL redis-benchmark
INSTALL redis-cli
make[1]: Leaving directory '/usr/local/redis/src'
2.3 配置Redis
使用 vim
命令打開 redis.conf
文件修改配置
- 修改
daemonize
改為yes
開啟守護線程(建議):
daemonize:yes
: 代表開啟守護進程模式。在該模式下,redis會在后臺運行,并將進程pid號寫入至redis.conf選項pidfile設置的文件中,此時redis將一直運行,除非手動kill該進程。daemonize:no
: 當daemonize選項設置成no時,當前界面將進入redis的命令行界面,exit強制退出或者關閉連接工具(putty,xshell等)都會導致redis進程退出。
################################# GENERAL #####################################
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
# When Redis is supervised by upstart or systemd, this parameter has no impact.
daemonize yes
- 修改
maxmemory
設置內存最大使用限制(可選):
# In short... if you have replicas attached it is suggested that you set a lower
# limit for maxmemory so that there is some free RAM on the system for replica
# output buffers (but this is not needed if the policy is 'noeviction').
#
# maxmemory <bytes>
maxmemory 1024MB
- 修改配置允許外網訪問(可選):
- 使用注釋符號
#
注釋bind 127.0.0.1
這一行 :
tips:bind
這一行配置使redis綁定127.0.0.1
本地回環地址,因此redis服務只能通過本機的客戶端連接。而將bind
選項設置為空的話,將允許接受所有來自于可用網絡接口的連接。# bind 127.0.0.1
- 設置
protected-mode
為yes
:
protected-mode
即保護模式,默認是開啟狀態,只允許本地客戶端連接。這里將其改成no,就可以設置密碼或添加bind來連接。protected-mode yes
- 設置永久密碼(可選),需重啟才能生效:
requirepass password #連接Redis密碼是:password
三、設置systemd方式啟動及管理
3.1 執行以下命令創建打開redis.service
sudo vim /etc/systemd/system/redis.service
3.2 將以下內容復制到文件中,并執行:wq
保存腳本
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3.3 重載服務列表
執行以下命令重載服務列表
systemctl daemon-reload
四、啟動Redis 6版本
4.1 啟動Redis
- 啟動redis命令:
systemctl start redis
- 停止redis命令:
systemctl stop redis
- 設置redis開機啟動:
systemctl enable redis
- 查看redis狀態:
systemctl status redis
4.2 檢查Redis
檢查Redis是否運行常用的三個命令:
- 使用
ss
命令查看端口:
ss -an | grep 6379
如果Redis已啟動則會看到類似的輸出:
tcp LISTEN 0 511 127.0.0.1:6379 *:*
- 使用
netstat
命令查看端口:
netstat -lanp | grep 6379
如果Redis已啟動則會看到類似的輸出:
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 2934/redis-server 1
- 使用
ps
和grep
命令組合查看
ps -ef | grep redis
如果Redis已啟動則會看到類似的輸出:
root 2934 1 0 01:45 ? 00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root 3014 2804 0 01:46 pts/0 00:00:00 grep --color=auto redis
4.3 開啟防火墻
如果以上命令都無法查看到運行的Redis端口,使用 systemctl status redis
看到Redis處于運行狀態,那么大概率是被防火墻攔截了。以CentOS 8系統為例,為Redis開啟 6379
端口的命令如下:
sudo firewall-cmd --new-zone=redis --permanent
sudo firewall-cmd --zone=redis --add-port=6379/tcp --permanent
sudo firewall-cmd --zone=redis --add-source=192.168.121.0/24 --permanent
sudo firewall-cmd --reload
上面的命令創建一個名為redis的 zone,打開了端口 6379
并且允許從局域網訪問。
此時,Redis 服務器將會接受從6379
TCP 端口來的遠程連接。
確保你的防火墻被配置好,僅僅接受來自可信 IP 范圍的訪問。
想要驗證所有設置都設置好了,你可以嘗試使用redis-cli
從你的遠程機器上 ping 一下 Redis 服務器。
五、連接Redis
4.1 使用redis-cli連接
redis-cli
的連接命令格式 redis-cli -h [您的主機] -p [端口號]
,示例如下:
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379
如果連接成功將看到類似以下的輸出:
127.0.0.1:6379>
在后面輸入ping
命令后,將收到一個 PONG
的回復,示例如下:
127.0.0.1:6379> ping
PONG
到此為止,我們已經完全了Redis的安裝和配置,如果您還有其他問題歡迎在評論區留言。
六、參考鏈接:
1)https://blog.csdn.net/zhizungege/article/details/110876232
2)http://www.lxweimin.com/p/8e13ff832dfb
3)https://juejin.cn/post/7037005709317259272
4)https://blog.csdn.net/lcyaiym/article/details/76863802
5)https://www.cnblogs.com/pqchao/p/6558688.html