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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 编辑器进度条 展示对话框…