發表文章

目前顯示的是有「redis」標籤的文章

phpredis使用rpoplpush時出現read error on connection

最近使用 redis 的 Lists 資料結構做些東西,採用 Reliable queue 這Pattern。 我開發環境的語言是PHP,連接 redis 的套件,採用 phpredis/phpredis: A PHP extension for Redis 這套。 雛形很快的就開發好了,沒想到,一測試就遇到以下的錯誤…程式無法達到預期-持續的連接於redis接收 Lists 內的資料。 RedisException: read error on connection in XXXXX.php 由於我是使用 brpoplpush 這指令操作,不經懷疑blocking的操作方式會受redis.conf中的timeout參數的影響。當初,考量redis的運作方式,因此刻意調整此參數避免redis被單一client卡住。畢竟設定檔中的timeout參數是這樣說明的…

cacti如何取得啟用認證機制的redis狀態

去年導入一個新專案時,因考量需要比key:value更複雜的模式,最後捨棄常用的memcache改用redis這套nosql。 和memcache相比,redis無論是功能、相關設定與需要注意的事項都複雜很多。 當初導入redis時,就曾考慮是否需要啟用其認證機制。但只要多花點時間瞭解redis的架構,不經讓人覺得redis的認證機制有點雞肋而暫時不啟用。 畢竟redis是單執行緒(Redis is single threaded),因此無法做延遲的處理。加上redis號稱每秒可處理500k的request,如果有心人士利用暴力法,應該不難打出密碼。 設定的重點,應該是啟動服務時不使用root,並設定好網路環境,避免外部可直接存取、及變更重要指令的名子等等…。 雖然說覺得redis認證機制雞肋,但最後考量能多層保護就多一層保護,最近還是調整設定、與程式,啟用了認證機制。 沒想到,cacti就無法正常取得redis的狀態了……