成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

laravel使用redis監(jiān)聽在內(nèi)部再次使用redis遇到的問題

Harriet666 / 1715人閱讀

摘要:問題一啟用監(jiān)聽收不到過期時間消息,原因是未開啟配置解決辦法是在配置文件內(nèi)開啟或者在命令行使用命令問題二原因是默認鏈接時間未秒,在設(shè)置為即可。問題三這個是因為一個鏈接使用監(jiān)聽時,無法使用其他命令。將監(jiān)聽事件設(shè)置為多帶帶實例。

問題一:啟用監(jiān)聽收不到過期時間消息,原因是未開啟配置
解決辦法是 在redis配置文件內(nèi)開啟 notify-keyspace-events Ex或者在redis命令行 redis-cli 使用命令:

config set notify-keyspace-events Ex

問題二:PredisConnectionConnectionException : Error while reading line from the server

原因是Redis默認鏈接時間未60秒,在database.php設(shè)置read_write_timeout為0即可。

"read_write_timeout"=>0

問題三:ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context
這個是因為一個Redis鏈接使用監(jiān)聽時,無法使用其他命令。需要重新建立一個鏈接。期初我使用 new PredisClient(),一直報錯,我也不知道為啥。然后我想到了使用集群,使用相同配置。將監(jiān)聽事件設(shè)置為多帶帶實例。具體操作如下:

//datebase.php配置頁面
"redis" => [
        "client" => "predis",
        "default" => [
            "host" => env("REDIS_HOST", "127.0.0.1"),
            "password" => env("REDIS_PASSWORD", null),
            "port" => env("REDIS_PORT", 6379),
            "database" => 0,
            "queue" => "{default}",//queue站點默認走的redis
        ],
        "publisher" => [ //redis 訂閱監(jiān)聽
                    "host" => env("REDIS_HOST", "127.0.0.1"),
                    "password" => env("REDIS_PASSWORD", null),
                    "port" => env("REDIS_PORT", 6379),
                    "database" => 0,
                    "read_write_timeout"=>0,//長連接不要斷
                ],
           ]
//監(jiān)聽頁面
//__keyevent@*__:expired監(jiān)聽過期消息
$redis=Redis::connection("publisher");//創(chuàng)建新的實例
$redis->psubscribe(["__keyevent@*__:expired"], function ($message, $channel) {
   echo $message;
   Redis::set("aa","123");//這樣就不會報錯了。這里使用的是default的,是兩個redis鏈接。
});

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29942.html

相關(guān)文章

  • 分析Laravel隊列實現(xiàn)原理解決問題記錄

    摘要:在使用中的隊列時,產(chǎn)生沖突干擾。文件中的配置部分至此,兩個項目的隊列沖突原因就找到了。隊列監(jiān)聽最后遇到問題,莫要病急亂投醫(yī)。從代碼入手,分析理解實現(xiàn)原理,找對點,解決方法也許很簡單,。 問題 公司項目使用Laravel的開發(fā)的兩個項目在同一個測試服務(wù)器部署,公用同一個redis。在使用laravel中的隊列時,產(chǎn)生沖突干擾。 查找問題原因 在laravel 隊列的操作類 Illumin...

    Corwien 評論0 收藏0
  • PHPer、Laravel 面試可能會遇到問題及答案

    摘要:如何實現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤中,相當(dāng)于備份數(shù)據(jù)庫狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫接收到的命令,所有被寫入的命令都是以的協(xié)議格式來保存的。 最近社區(qū)里面有一篇文章引起了最多程序猿的關(guān)注,Laravel、PHPer 面試可能會遇到的問題,看評論區(qū)不少小伙伴們被難倒,對于一些問題同樣難倒了我(其實有很多啦),趁著周末有空,又總結(jié)梳理了一遍,順便來答一波題。由于個人技術(shù)水平有限,答...

    fanux 評論0 收藏0
  • laravel利用Redis來實現(xiàn)網(wǎng)站緩存讀取

    摘要:豐富的數(shù)據(jù)類型支持二進制案例的及數(shù)據(jù)類型操作。原子的所有操作都是原子性的,同時還支持對幾個操作全并后的原子性執(zhí)行。豐富的特性還支持通知過期等等特性。完成上述配置之后我們就可以在應(yīng)用代碼中使用進行數(shù)據(jù)存取了。 教科書式開頭————先看一下redis的簡介 Redis 是完全開源免費的,遵守BSD協(xié)議,是一個高性能的key-value數(shù)據(jù)庫。 Redis 與其他 key - value ...

    yankeys 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<