laravel RedisException: Connection refused優雅草PMS項目管理系統報錯解決-以及Redis 詳細指南-優雅草卓伊凡

laravel RedisException: Connection refused優雅草PMS項目管理系統報錯解決-以及Redis 詳細指南-優雅草卓伊凡

今天來開始更新pms系統,因為我們ppt上面要做,才發現原來打不開,此前主要是事情太多,我們一直有很多東西擱置

解決 Laravel Redis 連接被拒絕的問題

您遇到的錯誤是 RedisException: Connection refused,這表明 Laravel 應用程序無法連接到 Redis 服務器。以下是解決此問題的步驟:

常見原因和解決方案

1. 檢查 Redis 服務是否運行

首先確認 Redis 服務器是否正在運行:

sudo systemctl status redis

如果未運行,啟動它:

sudo systemctl start redis

面板打開看了redis 正常 運行

然后發現端口改為6999了, 那估計配置文件不對頭。

2. 檢查 Redis 配置

確保您的 Laravel 配置文件 .env 中有正確的 Redis 配置:

REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null

果然 redis不對

修改后正常運行 laravel 不過 打開又有新的問題,不過不在本篇講了

新問題 🧨 NOAUTH Authentication required.

下篇講,本文主要講述redis

3. 檢查 Redis 服務器配置

查看 Redis 配置文件 /etc/redis/redis.conf 中的以下設置:

bind 127.0.0.1
protected-mode yes

如果 Redis 在另一臺服務器上,確保 bind 設置允許來自應用服務器的連接。

4. 檢查防火墻設置

確保防火墻允許 Redis 端口(默認 6379):

sudo ufw allow 6379

5. 檢查 PHP Redis 擴展

確保已安裝 PHP Redis 擴展:

php -m | grep redis

如果沒有,安裝它:

sudo apt-get install php-redis  # Ubuntu/Debian
sudo systemctl restart php-fpm  # 或您使用的 PHP 服務

6. 測試 Redis 連接

嘗試手動連接 Redis:

redis-cli ping

應該返回 PONG

7. 檢查 Laravel Redis 配置

查看 config/database.php 中的 Redis 配置:

'redis' => ['client' => env('REDIS_CLIENT', 'phpredis'),'default' => ['host' => env('REDIS_HOST', '127.0.0.1'),'password' => env('REDIS_PASSWORD', null),'port' => env('REDIS_PORT', 6379),'database' => env('REDIS_DB', 0),],
],

8. 檢查持久連接設置

如果使用持久連接,確保配置正確:

'options' => ['persistent' => true,'persistent_id' => 'your_id_here',
],

臨時解決方案

如果您需要快速恢復服務,可以暫時禁用 Redis 緩存,在 .env 中設置:

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync

深入排查

如果以上方法都不奏效,可以:

  1. PhpRedisConnector.php 文件中的連接代碼前添加日志,打印連接參數
  2. 檢查 Redis 服務器日志 /var/log/redis/redis-server.log
  3. 使用 telnet 測試端口連通性:telnet your_redis_host 6379

Redis 詳細配置與應用場景指南

Redis 詳細運行配置

Redis 的配置文件通常位于 /etc/redis/redis.conf,以下是主要配置參數及其說明:

1. 基本配置

  • daemonize yes|no:是否以守護進程方式運行
  • pidfile /var/run/redis.pid:PID 文件位置
  • port 6379:監聽端口
  • bind 127.0.0.1:綁定的IP地址
  • timeout 300:客戶端空閑超時時間(秒)
  • tcp-keepalive 300:TCP保持連接時間(秒)

2. 安全配置

  • requirepass foobared:設置認證密碼
  • rename-command CONFIG "":重命名或禁用危險命令
  • protected-mode yes:保護模式(無bind和密碼時只接受本地連接)

3. 資源限制

  • maxclients 10000:最大客戶端連接數
  • maxmemory 2gb:最大內存限制
  • maxmemory-policy volatile-lru:內存滿時的淘汰策略
    • volatile-lru:從已設置過期時間的數據集中挑選最近最少使用的數據淘汰
    • allkeys-lru:從所有數據集中挑選最近最少使用的數據淘汰
    • volatile-random:從已設置過期時間的數據集中隨機淘汰
    • allkeys-random:從所有數據集中隨機淘汰
    • volatile-ttl:從已設置過期時間的數據集中挑選將要過期的數據淘汰
    • noeviction:不淘汰,返回錯誤

4. 持久化配置

  • save 900 1:900秒內有1個更改則快照
  • save 300 10:300秒內有10個更改則快照
  • save 60 10000:60秒內有10000個更改則快照
  • stop-writes-on-bgsave-error yes:快照出錯時停止寫入
  • rdbcompression yes:RDB文件壓縮
  • dbfilename dump.rdb:RDB文件名
  • dir ./:持久化文件存儲目錄

AOF持久化配置:

  • appendonly no:是否開啟AOF
  • appendfilename appendonly.aof:AOF文件名
  • appendfsync everysec:同步策略
    • always:每次寫入都同步
    • everysec:每秒同步一次
    • no:不主動同步,由操作系統決定

5. 高級配置

  • hash-max-ziplist-entries 512:哈希使用ziplist的最大元素數
  • hash-max-ziplist-value 64:哈希使用ziplist的最大值字節數
  • activerehashing yes:是否主動rehash
  • client-output-buffer-limit:客戶端輸出緩沖區限制
  • hz 10:后臺任務執行頻率(1-500)

Redis 主要應用場景

1. 緩存系統

  • 減輕數據庫壓力
  • 熱點數據緩存
  • 頁面緩存
  • 對象緩存

2. 會話存儲(Session Store)

  • 分布式會話共享
  • 高可用會話管理

3. 消息隊列系統

  • 使用List實現簡單隊列
  • Pub/Sub實現發布訂閱
  • Stream實現更復雜的消息隊列

4. 實時排行榜/計數器

  • 使用ZSET實現排行榜
  • INCR實現計數器
  • 實時統計在線人數等

5. 分布式鎖

  • SETNX實現分布式鎖
  • RedLock算法實現更安全的分布式鎖

6. 社交網絡功能

  • 粉絲關系
  • 時間線
  • 點贊/收藏

7. 地理位置應用

  • GEO命令處理地理位置
  • 附近的人
  • 位置搜索

8. 實時系統

  • 實時監控
  • 實時分析
  • 實時推送

Redis 數據結構及應用對應

數據結構

常用命令

典型應用場景

String

SET, GET, INCR

緩存、計數器、分布式鎖

Hash

HSET, HGET, HINCRBY

對象存儲、用戶屬性

List

LPUSH, RPOP, BLPOP

消息隊列、最新列表

Set

SADD, SINTER, SUNION

標簽、好友關系、唯一計數

ZSet

ZADD, ZRANGE, ZREVRANK

排行榜、優先級隊列

HyperLogLog

PFADD, PFCOUNT

基數統計(UV統計)

GEO

GEOADD, GEORADIUS

地理位置、附近的人

Stream

XADD, XREAD, XGROUP

消息隊列、事件溯源

Redis 生產環境最佳實踐

  1. 內存管理
    • 設置合理的maxmemory
    • 根據業務選擇合適的淘汰策略
    • 監控內存使用情況
  1. 持久化選擇
    • RDB適合備份和快速恢復
    • AOF提供更好的持久性保證
    • 生產環境建議RDB+AOF結合使用
  1. 高可用
    • 主從復制
    • Redis Sentinel實現自動故障轉移
    • Redis Cluster實現數據分片
  1. 性能優化
    • 合理使用Pipeline減少網絡往返
    • 避免大Key(單個Key過大)
    • 避免熱點Key(某個Key訪問過于頻繁)
    • 合理設置連接池大小
  1. 安全
    • 設置密碼認證
    • 禁用危險命令
    • 綁定特定IP
    • 啟用保護模式

Redis因其高性能、豐富的數據結構和多種持久化選項,已成為現代應用架構中不可或缺的組件,合理配置和使用Redis可以極大提升系統性能和用戶體驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90188.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90188.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90188.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

拉力覆冰在線監測裝置:電力線路安全運行的數字化守衛者

在極端天氣頻發的背景下,輸電線路覆冰災害已成為威脅電網穩定運行的關鍵因素。拉力覆冰在線監測裝置通過數字化技術構建起全天候監測體系,為電力運維提供精準數據支撐。本文從技術實現與實際應用價值角度,解析該裝置的核心功能與行業意義。核…

AI面試如何提升物流行業招聘效率?實戰案例解析

每年秋招季,物流行業都會迎來海量應屆生簡歷涌入。面對業務快速擴張與人才篩選壓力,傳統線下面試流程長、標準模糊、成本高昂等問題愈發凸顯。本文通過兩大物流頭部企業的實戰案例,解析AI面試如何破解招聘困局,實現效率與質量的雙…

【機器學習】組合優化問題combination-optimization概述

博主簡介:努力學習的22級計算機科學與技術本科生一枚🌸博主主頁: Yaoyao2024往期回顧:【二分圖算法】手把手教你學會:染色法(判斷二分圖)、匈牙利算法(二分圖的最大匹配)…

Linux網絡編程-osi、udp

網絡:不同主機,進程間通信達到不同主機之間的困難:解決主機之間的硬件層面的互聯互通解決主機之間的軟件層面的互聯互通廣域網:進行大范圍網絡數據交換IP地址:區分不同主機 唯一的(軟件地址)MAC…

刪除 XML 格式中雙引號內的空格

要使用 Shell 命令刪除 XML 格式中雙引號內的空格(僅處理屬性值中的空格,保留標簽外的空格),可以使用以下 sed 命令: sed -i :loop; s/\("[^"]*\) \([^"]*"\)/\1\2/g; t loop filename.xml命令詳解…

電腦聲音修復?【圖文詳解】電腦沒有聲音?聲音異常

一、問題背景 在使用電腦的過程中,聲音異常是很常見的問題。比如明明打開了音頻文件,卻聽不到任何聲音;或者聲音忽大忽小、伴有雜音;或者更新了聲卡驅動后,電腦播放不了聲音了;還有可能是插入耳機后&#x…

【文獻筆記】ARS: Automatic Routing Solver with Large Language Models

ARS: Automatic Routing Solver with Large Language Models https://github.com/Ahalikai/ARS-Routbench/ ARS:基于大語言模型的自動路由求解器 1. 概述 1.1. 研究背景 車輛路徑問題(VRP)是一類經典的組合優化問題,廣泛應用于…

RK3568筆記九十:基于web顯示RTSP流

若該文為原創文章,轉載請注明原文出處。 在網上看到個方案,使用web顯示RTSP視頻流,思路是前端傳入RTSP地址,cgi通過FFMPEG接收RTSP流并保存成avi文件,在通過ffmpeg 命令把avi文件保存成mp4文件,前端在播放mp4文件。此方案需要先保存文件,在轉換文件,無法實時播放。 所以…

2025年Flutter開發主流技術棧

2025年Flutter開發主流技術棧 Flutter作為一種高效、跨平臺的移動應用開發框架,近年來在開發者社區中越來越受歡迎。以下是2025年Flutter開發的主流技術棧,涵蓋了從核心框架到開發工具、狀態管理、數據存儲等多個方面。 1. 核心框架 Flutter:…

Qt 常用控件 - 1

控件概述 編程講究的是 --- 站在巨人的肩膀上 --- 不是編寫一個圖形化界面上的內容 --- Qt 已經提供了很多控件了!!!提高圖形化界面的開發效率!!!重點變成我們怎么使用這些已有的控件! Widge…

springdoc-openapi-ui的使用教程

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.14</version> </dependency>springdoc-openapi-ui 是一個用于生成 OpenAPI 文檔的庫&#xff0c;它與 Swagger 的關…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-3,(運放/三極管)

目錄 1、題目 2、解答 【硬件-筆試面試題】硬件/電子工程師&#xff0c;筆試面試題-3&#xff0c;&#xff08;運放/三極管&#xff09; 這是一道大疆的筆試題 1、題目 2、解答

SQL Server 數據類型的含義、特點及常見使用場景的詳細說明

數值類型 bigint 含義:用于存儲大范圍的整數,是 8 字節(64 位)有符號整數類型。 范圍:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 。 場景:適合存儲像訂單編號(可能很大)、系統中需要大范圍計數的標識等,比如大型系統中大量數據的主鍵自增列(數據量極…

WPF的一些基礎知識學習記錄

路由事件 路由事件(Routed Event)是WPF事件系統的核心&#xff0c;它允許事件在元素樹中傳播&#xff0c;而不僅僅局限于引發事件的對象。包含以下三類&#xff1a;類型方向觸發順序典型用途示例事件??直接事件(Direct Event)??不路由只在源元素觸發類似傳統.NET事件MouseE…

【補題】Codeforces Round 1000 (Div. 2) C. Remove Exactly Two

題意&#xff1a;給一個樹&#xff0c;可以從里面刪去兩個點&#xff0c;使連通塊數量最大 思路&#xff1a;題解&#xff1a;CF2063C Remove Exactly Two - 洛谷專欄 這道題很容易想到&#xff0c;直接刪去度最多的兩個點就行了&#xff0c;但是這并不對&#xff0c;因為相鄰…

基于php的校園招聘平臺

學生&#xff1a;注冊&#xff0c;登錄&#xff0c;個人中心&#xff0c;學生應聘管理&#xff0c;面試邀請管理企業&#xff1a;登錄&#xff0c;個人中心&#xff0c;招聘信息管理&#xff0c;學生應聘管理&#xff0c;面試邀請管理管理員&#xff1a;登錄&#xff0c;個人中…

在 Ubuntu 22.04 上運行 cAdvisor 時遇到 mountpoint for cpu not found 錯誤

通常是由于 cgroup v2 導致的兼容性問題。Ubuntu 22.04 默認使用 cgroup v2&#xff0c;而舊版本的 cAdvisor 可能不完全支持它。以下是解決方案&#xff1a;方法 1&#xff1a;啟用 cgroup v1&#xff08;推薦&#xff09;臨時切換回 cgroup v1&#xff08;cAdvisor 兼容性更好…

如何讓RAGFLow每次知識檢索都是返回知識庫中的所有文檔?

在使用raglfow過程中,有時候輸入的文本檢索為空,要么就是只返回幾條.如果想要看到所有知識庫里文本返回,就得需要去到源碼里修改這個參數minimum_should_match(路徑:rag/utils/es_conn.py),將其設置為0%,即可返回所有文本!!

「iOS」——KVO

源碼學習iOS底層學習&#xff1a;KVO 底層原理KVO注冊 KVO 監聽 實現 KVO 監聽 移除 KVO 監聽 處理變更通知 手動KVO(禁用KVO)關閉自動通知手動實現 setter 方法KVO 和線程如果 KVO 是多線程的**單線程的保證**如果沒有 prior 選項**prior 選項的作用**KVO 實現原理派生類重寫的…

Unreal5從入門到精通之使用 Python 編寫虛幻編輯器腳本

文章目錄 前言 如何運行Python 1.控制臺 2.藍圖調用python python 入門 變量 數據類型 運算符 條件判斷 循環 函數 模塊引用 類型轉換 類 類方法 繼承 構造函數 unreal API 創建材質 創建材質實例 獲取Content下選中資源 獲取關卡中選中Actors 放置Cube 編輯器進度條 展示對話框…