当前位置: 首页 > ds >正文

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.xdnf.cn/news/15944.html

相关文章:

  • WSL的功能及用途
  • JavaScript空值安全深度指南
  • 单调队列深度解析(下)
  • 前端开发技巧:浏览器模拟弱网络环境
  • 【Linux】重生之从零开始学习运维之Nginx
  • 高可用架构设计与实践综述
  • XSS总结
  • 【RK3576】【Android14】固件烧录
  • 零基础学后端-PHP语言(第一期-PHP环境配置)
  • SQL核心语法与实战应用指南
  • MacOS:如何利用终端来操作用户
  • kafka--基础知识点--6.1--LEO、HW、LW
  • 2025 Data Whale x PyTorch 安装学习笔记(Windows 版)
  • react+antd+表格拖拽排序以及上移、下移、移到顶部、移到底部
  • react17更新哪些新特性
  • ARINC818协议综述
  • 48Days-Day03 | 删除公共字符,两个链表的第一个公共结点,mari和shiny
  • uniapp相关地图 API调用
  • servicemesh 学习
  • 实战分享:Web3 前端开发Defi项目
  • [硬件电路-39]:激光光路的光信号处理、模拟电路的电信号处理、数字电路的电信号处理、软件的信号处理,有哪些共通的操作、运算、变换?
  • 06-人机共生:Prompt之外的思考
  • 【RK3576】【Android14】USB开发调试
  • k8s 基本架构
  • 【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL、GIS)
  • 完美解决 Ubuntu 中自定义启动器图标重复的问题(以 MATLAB 为例)
  • bash方式启动模型训练
  • python基础复习
  • 高压电工作业证考试核心考点:电气安全基础篇
  • 响应式单位rpx及搭配使用UI产品工具