首页 > 数据库 >redis 连接报错read error on connection解决

redis 连接报错read error on connection解决

时间:2023-09-30 17:11:55浏览次数:45  
标签:php socket read redis default 报错 timeout 超时

在使用redis队列处理的时候,有时候队列过长会遇到超时的情况。

原因分析:
查看了下php.ini文件里面有个参数default_socket_timeout = 60,就是这个配置导致redis过60秒会自动断开。
这个配置是什么意思?default_socket_timeout是socket流的超时参数,即socket流从建立到传输再到关闭整个过程必须要在这个参数设置的时间以内完成,如果不能完成,那么PHP将自动结束这个socket并返回一个警告。

由于php得redis扩展是基于php 的socket方式实现,因此该参数值同样会起作用。在redis里面brpop会建立一个socket流,如果这个socket流建立之后超过特定的时间都没有返回则会自动结束该socket流。

解决办法:

一、

动态修改 php.ini , 在连接redis处把 default_socket_timeout 这个参数设置成-1 不超时即可。

ini_set('default_socket_timeout', -1);

二、

设置 redis 的超时时间为不超时:
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);

摘自:https://www.cnblogs.com/qichao123/p/16599485.html

标签:php,socket,read,redis,default,报错,timeout,超时
From: https://www.cnblogs.com/wt645631686/p/17738033.html

相关文章

  • vue:el-table在resize时报错(element-plus@2.3.12)
    一,报错信息:Uncaughtruntimeerrors:×ERRORResizeObserverloopcompletedwithundeliverednotifications.athandleError(webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58)ateval(webpack-internal:///./node_modules/webpa......
  • jenkins教程:解决nodejs前端构建时报错(EMFILE: too many open files)
    修改系统最大打开文件数临时生效ulimit-n65535永久生效vim/etc/security/limits.conf*softnofile65535*hardnofile65535#修改单个进程最大打开文件数*softnprocunlimited*hardnprocunlimited查看修改结果ulimit-n配置完成后,restartjenkins即可生效。或者临时......
  • gitlab升级后Runner 500报错
    gitlab升级后500报错今天是月饼节哦。长假最适合梳理下这段时间的工作经验。上个月说到gitlab升级到16.2.3,其实升级后没几天遇到一个比较棘手的问题:超级管理员登录进去,修改什么配置保存后都会报错500,不仅如此,还发现项目无法移动命名空间(可以理解为a用户的项目移到b用户......
  • Go每日一库之168:redsync(redis分布式锁)
    今天给大家推荐的是基于redis的Go版本的分布式锁工具:redsync。该工具也是redis官网上推荐的。redsync基于redis的高可用、高性能、防死锁、防误删的分布式锁实现,具有高性能、高可用、防死锁、防误删的特点。一、分布式锁基础知识什么是分布式锁锁,在编程语言中就是一个变量,该变......
  • maven 编译.../maven-metadata.xml 报错
    问题突然编译报错:解决打开maven的里离线工作模式,感觉就是下载包到本地.一个是在maven设置里面或者直接在maven编译的窗口:......
  • Redis主从及哨兵及集群相关介绍
    主从模式为了避免单点故障和读写不分离,Redis提供了复制(replication)功能,master数据库中的数据更新后,会自动将更新的数据同步到其他slave数据库上。优点:主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。不足:大的不足就是主从模式不具备自动容错和恢复功能,主......
  • Redis 事务
    Redis事务Redis中的事务是通过使用MULTI、EXEC、DISCARD和WATCH命令实现的。以下是这些命令的说明:MULTI:用于标记事务的开始。在执行MULTI后,所有后续的命令都将被认为是事务的一部分。EXEC:用于执行之前标记的事务。Redis将按顺序执行事务中的所有命令。DISCARD:......
  • Linux Centos7 虚拟环境安装Redis教程(超详细)
    一、Redis的介绍1、基于内存或持久化的日志型、key-value型的Nosql数据库2、Redis六大特性:速度快、广泛的语言支持、持久化、多种数据结构、主从复制、高可用与分布式。二、Redis安装下载1、官网下载官网:https://redis.io/download/选择Redhat/Centos7下载tar.gz压缩包......
  • Redis持久化相关
    关于Redis持久化RDB(redisdatabase):在指定的时间间隔对数据进行快照存储,全量存储。它以紧缩的二进制文件保存Redis数据库某一时刻所有数据对象的内存快照,可用于Redis的数据备份、转移与恢复。AOF(appendonlyfile):记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令......
  • Logstash 获取通道类型 Redis 数据
    Redis服务器是logstash官方推荐的broker选择。Broker角色也就意味着会同时存在输入和输出俩个插件。这里我们先学习输入插件。LogStash::Inputs::Redis 支持三种 data_type(实际上是redis_type),不同的数据类型会导致实际采用不同的Redis命令操作:list=>BLPOPchannel......