Redis突現(xiàn)拒絕連接問題處理方案
一、問題回顧
項(xiàng)目突然報異常
[INFO] 2024-02-20 10:09:43.116 i.l.core.protocol.ConnectionWatchdog [171]: Reconnecting, last destination was 192.168.0.231:6379
[WARN] 2024-02-20 10:09:43.120 i.l.core.protocol.ConnectionWatchdog [151]: Cannot reconnect to [192.168.0.231:6379]: finishConnect(..) failed: Connection refused: /192.168.0.231:6379
看異常顯示redis無法連接,使用redis-cli
命令也無法正常進(jìn)入,顯示拒絕連接,但進(jìn)程沒有掛掉。
分析原因是由于redis與業(yè)務(wù)共一個服務(wù)器,內(nèi)存只有8G,業(yè)務(wù)服務(wù)啟動過多,內(nèi)存不足導(dǎo)致redis拒絕連接。
沒辦法只能先啟動,命令如下:
/usr/local/bin/redis-server /usr/local/redis/redis.conf
啟動后發(fā)現(xiàn)項(xiàng)目自動連上了,但查看redis數(shù)據(jù)時,發(fā)現(xiàn)歷史數(shù)據(jù)都丟失了。繼續(xù)查看redis配置
cat /usr/local/redis/redis.conf
查看是否有設(shè)置持久化,沒有開啟aof,只開啟了默認(rèn)的rdb。
rdb的路徑配置是當(dāng)前目錄。
而前面啟動的路徑并不是在/usr/local/redis/
,導(dǎo)致數(shù)據(jù)為空,重新切換到該路徑啟動數(shù)據(jù)恢復(fù)正常。
二、解決方案
上面臨時啟動治標(biāo)不治本,跟領(lǐng)導(dǎo)商量了一下,決定找網(wǎng)管把服務(wù)器的內(nèi)存升級一下。升級面臨著需要重啟服務(wù)器,所有依賴redis的服務(wù)都會停擺,所以要提前做好準(zhǔn)備工作,節(jié)省操作時間。
步驟如下:
1、把相關(guān)業(yè)務(wù)添加到系統(tǒng)自啟動
2、將Redis也添加到系統(tǒng)自啟動
3、停止業(yè)務(wù)服務(wù),避免新的請求進(jìn)來
4、手動保存Redis鏡像,保證數(shù)據(jù)不丟失
5、升級配置,重啟服務(wù)器
6、等待Redis和業(yè)務(wù)開機(jī)啟動
7、驗(yàn)證業(yè)務(wù)服務(wù)是否正常
詳細(xì)操作:
1、把相關(guān)業(yè)務(wù)添加到系統(tǒng)自啟動
本例所使用的操作系統(tǒng)是Centos 7,其他系統(tǒng)的命令會有所不同。
cd /etc/rc.d chmod +x rc.local #添加rc.local可執(zhí)行權(quán)限 vim rc.local
在文件的最后添加下面代碼:
sudo sh /mnt/core/start.sh
以上腳本文件也要添加可執(zhí)行權(quán)限
chmod +x start.sh
2、創(chuàng)建Redis開機(jī)自啟動服務(wù)
打開目錄
cd /usr/lib/systemd/system
創(chuàng)建服務(wù)
touch redis.service
然后使用以下命令打開文件
vim redis.service
并將文件內(nèi)容更改為以下代碼:
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
使Redis服務(wù)開機(jī)自啟生效
systemctl enable redis
檢查Redis是否已成功設(shè)置為開機(jī)自啟。
可以通過運(yùn)行以下命令來確認(rèn)新服務(wù)的設(shè)置
systemctl list-unit-files | grep redis
完成以上步驟后,您的Redis服務(wù)器應(yīng)該會在每次系統(tǒng)啟動時自動啟動。
三、注意事項(xiàng)
1、我們要把redis.conf的dir配置修改成固定的路徑,否則自啟動時使用的dump.rdb不是原文件,會重新生成一個新的。dir ./
修改成 dir /usr/local/redis
,如下圖:
2、啟動重啟之前需要手動保存一下,本例沒有啟用aof,直接關(guān)閉可能有數(shù)據(jù)丟失風(fēng)險。操作命令如下
redis-cli -a 'password' 127.0.0.1:6379> BGSAVE Background saving started 127.0.0.1:6379> lastsave (integer) 1708435050
lastsave
命令需要多執(zhí)行幾次,然后比對時間,可以根據(jù)以下命令查看
在linux環(huán)境下時間戳轉(zhuǎn)換成日期格式
date -d @1708435050
確保已經(jīng)把數(shù)據(jù)完整保存后就可以執(zhí)行關(guān)閉Redis操作了
127.0.0.1:6379> shutdown
四、相關(guān)命令
關(guān)閉redis
redis-cli -h 192.168.0.231 -a 'password' shutdown
本機(jī)可以省略-h參數(shù)
redis-cli -a 'password' shutdown
或進(jìn)入redis-cli后操作
127.0.0.1:6379> shutdown
查看 redis 數(shù)據(jù)大小
redis-cli -a 'password' dbsize 或 127.0.0.1:6379> dbsize
查看redis服務(wù)執(zhí)行的命令情況
redis-cli -a 'password' monitor
實(shí)時監(jiān)控 Redis 實(shí)例
redis-cli -a 'password' --stat
默認(rèn)每秒輸出一條新行,其中包含有用信息和每個采集點(diǎn)的請求次數(shù)差異
查看 redis 默認(rèn)的最大連接數(shù)
redis-cli -a 'password' config get maxclients # 或進(jìn)入redis-cli后操作 127.0.0.1:6379> config get maxclients
查看 redis 默認(rèn)存放備份文件的目錄路徑,配置文件中默認(rèn)為 dir ./
redis-cli -a 'password' config get dir # 或進(jìn)入redis-cli后操作 127.0.0.1:6379> config get dir
查看備份 RDB 文件的名稱,默認(rèn)為 dump.rdb
redis-cli -a 'password' config get dbfilename # 或進(jìn)入redis-cli后操作 127.0.0.1:6379> config get dbfilename
到此這篇關(guān)于Redis突現(xiàn)拒絕連接問題處理總結(jié)的文章就介紹到這了,更多相關(guān)Redis拒絕連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis stream 實(shí)現(xiàn)消息隊(duì)列的實(shí)踐
本文主要介紹了redis stream 實(shí)現(xiàn)消息隊(duì)列的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08CentOS8.4安裝Redis6.2.6的詳細(xì)過程
本文給大家介紹CentOS8.4安裝Redis6.2.6的詳細(xì)過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-11-11Redis02 使用Redis數(shù)據(jù)庫(String類型)全面解析
這篇文章主要介紹了Redis02 使用Redis數(shù)據(jù)庫(String類型)全面解析的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07利用Redis?lua實(shí)現(xiàn)高效讀寫鎖的代碼實(shí)例
這篇文章給大家介紹了如何利用Redis?lua實(shí)現(xiàn)高效的讀寫鎖,讀寫鎖的好處就是能幫助客戶讀到的數(shù)據(jù)一定是最新的,寫鎖是排他鎖,而讀鎖是一個共享鎖,需要的朋友可以參考下2024-01-01redis的五大數(shù)據(jù)類型應(yīng)用場景分析
這篇文章主要介紹了redis的五大數(shù)據(jù)類型實(shí)現(xiàn)原理,本文給大家分享五大數(shù)據(jù)類型的應(yīng)用場景分析,需要的朋友可以參考下2021-08-08