最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis?異常?read?error?on?connection?的解決方案

 更新時(shí)間:2022年08月26日 15:03:57   作者:潘廣宇  
這篇文章主要介紹了Redis異常read?error?on?connection的解決方案,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下

一、造成原因與場景

在接口連接 redis 時(shí),使用了 pconnect 進(jìn)行 redis 長連接,在 Redis->auth() 中拋出異常:

PHP Fatal error:  Uncaught exception 'RedisException' with message 'read error on connection' 

注:由于 php-fpm 對(duì)連接的重用性,所以,當(dāng)存在cgi進(jìn)程管理器[如php-fpm,spawn-cgi],使用 pconnect 效率比 connect 高。但是由于每個(gè)持久連接會(huì)占用內(nèi)存,當(dāng)并發(fā)量很大的時(shí),很可能造成內(nèi)存吃緊

二、出現(xiàn)原因

通過 pconnect 的 redis 長連接不會(huì)主動(dòng)釋放,會(huì)一直保持在php-fpm進(jìn)程中,等待完成下一個(gè)請(qǐng)求的任務(wù),即使通過 close 也僅是使當(dāng)前php不能再進(jìn)行redis請(qǐng)求,但無法真正關(guān)閉redis長連接,連接在后續(xù)請(qǐng)求中仍然會(huì)被重用,直至fpm進(jìn)程生命周期結(jié)束。

這樣會(huì)出現(xiàn)以下兩種情況:

1)原因1 使用了已經(jīng)斷開的連接

假如這個(gè)連接已經(jīng)斷開了,下個(gè)請(qǐng)求可能直接使用上個(gè)斷開的連接,當(dāng) php-fpm 處理下一個(gè)請(qǐng)求 reuse 一個(gè)斷開的連接可能導(dǎo)致 read error on connection 的異常,以下是 phpredis 源碼的解釋:

2)原因2:執(zhí)行超時(shí)

  • a)客戶端設(shè)置的超時(shí)時(shí)間過短導(dǎo)致的;
  • b)客戶端未設(shè)置超時(shí)時(shí)間,但是服務(wù)端執(zhí)行時(shí)間超過了默認(rèn)超時(shí)時(shí)間設(shè)置

php 有一個(gè)配置項(xiàng) default_socket_timeout 表示一個(gè) socket 連接的超時(shí)時(shí)間,默認(rèn)是60s,而phpredis 這個(gè)擴(kuò)展的底層連接 redis 是使用的 socket,所以當(dāng)一個(gè)連接在60秒內(nèi)沒有被使用的時(shí)候,下次連接就會(huì)拋出這個(gè)異常。

三、解決方案

1)如果是原因1

長連接改為短連接 或者 在 pconnect 中增加超時(shí)時(shí)間

$this->redis->pconnect($host, $port, 2);       //@todo 2秒后該連接超時(shí),將使用新的長連接

2)如果是原因2:修改超時(shí)時(shí)間

(不推薦) 方案1:

php.ini 中設(shè)置

default_socket_timeout = -1

然后重啟php-fpm

方案2:

動(dòng)態(tài)修改 php.ini 

ini_set('default_socket_timeout', -1); // 不超時(shí)

方案3:

設(shè)置 redis 的超時(shí)時(shí)間為不超時(shí):

$this->redis->setOption(Redis::OPT_READ_TIMEOUT, -1);

到此這篇關(guān)于Redis 異常 read error on connection 的解決方案的文章就介紹到這了,更多相關(guān)Redis 異常 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis 數(shù)據(jù)庫忘記密碼找回或重置的解決方法

    Redis 數(shù)據(jù)庫忘記密碼找回或重置的解決方法

    對(duì)于 Redis 數(shù)據(jù)庫,如果忘記了密碼,可以通過密碼重置來找回密碼,今天通過本文給大家分享Redis 數(shù)據(jù)庫忘記密碼找回或重置的解決方法,感興趣的朋友一起看看吧
    2024-01-01
  • Python Redis如何執(zhí)行Lua腳本

    Python Redis如何執(zhí)行Lua腳本

    這篇文章主要介紹了Python Redis如何執(zhí)行Lua腳本問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • redis實(shí)現(xiàn)共同好友的思路詳解

    redis實(shí)現(xiàn)共同好友的思路詳解

    微信朋友圈大家都玩過吧,那么朋友圈的點(diǎn)贊、評(píng)論只能看到自己好友的信息是怎么操作的呢?下面通過本文給大家分享下此功能的實(shí)現(xiàn)流程,對(duì)redis實(shí)現(xiàn)共同好友的方法感興趣的朋友一起看看吧
    2021-05-05
  • Redis數(shù)據(jù)一致性詳解

    Redis數(shù)據(jù)一致性詳解

    文章主要討論了分布式系統(tǒng)中的數(shù)據(jù)一致性模型、緩存使用場景以及數(shù)據(jù)同步策略,一致性模型包括強(qiáng)一致性、弱一致性和最終一致性,緩存使用場景主要在高并發(fā)讀取數(shù)據(jù)時(shí)提升性能,數(shù)據(jù)同步策略分為先刪除緩存再更新數(shù)據(jù)庫和先更新數(shù)據(jù)庫再刪除緩存兩種
    2024-11-11
  • Redis高性能的原因及說明

    Redis高性能的原因及說明

    這篇文章主要介紹了Redis高性能的原因及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案

    Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案

    這篇文章主要介紹了Redis中緩存和數(shù)據(jù)庫雙寫數(shù)據(jù)不一致的原因及解決方案,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 攔截Redis命令導(dǎo)致的Lua腳本執(zhí)行失敗的問題解決

    攔截Redis命令導(dǎo)致的Lua腳本執(zhí)行失敗的問題解決

    本文主要介紹了攔截Redis命令導(dǎo)致的Lua腳本執(zhí)行失敗的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Redis從單點(diǎn)到集群部署模式(單機(jī)模式?主從模式?哨兵模式)

    Redis從單點(diǎn)到集群部署模式(單機(jī)模式?主從模式?哨兵模式)

    這篇文章主要為大家介紹了Redis從單點(diǎn)集群部署模式(單機(jī)模式?主從模式?哨兵模式)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Redis命令使用技巧之Keys的相關(guān)操作

    Redis命令使用技巧之Keys的相關(guān)操作

    Redis KEYS命令用于搜索具有匹配模式的鍵。下面這篇文章主要給大家介紹了關(guān)于Redis命令使用技巧之Keys的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Redis連接錯(cuò)誤的情況總結(jié)分析

    Redis連接錯(cuò)誤的情況總結(jié)分析

    這篇文章主要給大家總結(jié)介紹了關(guān)于Redis連接錯(cuò)誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評(píng)論

汝州市| 唐海县| 江都市| 铜鼓县| 墨玉县| 晋宁县| 汤阴县| 青冈县| 永新县| 右玉县| 凌云县| 永丰县| 澄城县| 金阳县| 孟州市| 封开县| 蒙城县| 芒康县| 泌阳县| 平舆县| 新营市| 资源县| 汨罗市| 安西县| 巫山县| 古浪县| 长泰县| 荃湾区| 霸州市| 上饶市| 修水县| 安远县| 多伦县| 进贤县| 彭水| 巫溪县| 锡林郭勒盟| 舞阳县| 乐山市| 东辽县| 龙江县|