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

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.dtcms.com/a/287546.html

相关文章:

  • 传统行业和AIGC的结合及应用
  • Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)
  • PyQt5—Qt QDialog 学习笔记
  • 【RK3576】【Android14】SDK源码编译
  • 【RK3576】【Android14】UART开发调试
  • JavaScript基础语法和简单数据结构
  • 【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL、GIS)
  • RPC(Remote Procedure Call,远程过程调用)介绍
  • MySQL数据丢失救援办法
  • 下一场范式革命:Transformer架构≠最终解法
  • 《全栈博客系统的技术肌理:从接口构建到体验升维的实践路径》
  • 美国VPS服务器Linux内核参数调优的实践与验证
  • 第二次总结(xss、js原型链)
  • 【2025最新】使用neo4j实现GraphRAG所需的向量检索
  • OAIF:基于在线 AI 反馈的语言模型直接对齐
  • [MarkdownGithub] 使用块引用高亮显示“注意“和“警告“和其他注意方式的选项
  • Django母婴商城项目实践(九)- 商品列表页模块
  • vue2 面试题及详细答案150道(121 - 130)
  • [Python] -实用技巧10- 时间处理:datetime 和 time 模块入门
  • React 的 `cache()` 函数
  • 使用 Gunicorn 部署 Django 项目
  • XSS相关理解
  • Ubuntu20.04 samba配置
  • 针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)
  • 考研复习-数据结构-第七章-查找
  • 论文略读:Are Large Language Models In-Context Graph Learners?
  • 编程实现Word自动排版:从理论到实践的全面指南
  • 【Linux服务器】-zabbix通过proxy进行分级监控
  • Vue3生命周期函数
  • 多进程服务器