慢查詢
redis生命周期如下圖 因為Redis是單線程的借杰,相關命令發(fā)送請求以后需要排隊
慢查詢發(fā)生在第三階段粪狼,執(zhí)行命令階段
慢查詢只是導致客戶端超時的一種可能因素
配置
慢查詢是一個先進先出的隊列。保存在內(nèi)存中纯衍。會隨著重啟而消失
如果被列為慢查詢他會進入(記錄)一個先進先出的隊列栋齿。且隊列具有固定長度。
默認值:
config get slowlog-max-len = 128 默認慢隊列長度
config get slowlog-log-slower-than = 10000 10ms
命令:
slowlog get [n] :獲取慢查詢隊列
slowlog len :獲取慢查詢隊列長度
slowlog reset:清空慢查詢隊列
運維經(jīng)驗
因為redis是qps萬級別的襟诸,所以處理速度是微秒級瓦堵,我們將1ms算為慢查詢范圍。
長度設置為1000防止丟失慢查詢數(shù)據(jù) 128太小了
定期持久化慢查詢
Pipeline 流水線
流水線就是將多個命令通過一次網(wǎng)絡請求(占用一次網(wǎng)絡時間)發(fā)送給服務端處理歌亲,然后批量返回的操作菇用。
redis的命令時間是微秒級別,執(zhí)行速度遠快于一次網(wǎng)絡請求
與M操作的區(qū)別(批量)
M操作是原子性的陷揪,是一條命令
流水線是非原子性的惋鸥,可以切割成多條,如上圖為100條流水線悍缠,中間可以穿插其他命令揩慕。
發(fā)布訂閱
各種MQ 不香嗎!
bitmap 位圖
通俗:設置數(shù)據(jù)上某位bit上面修改1和0數(shù)據(jù)
是否節(jié)省空間需要通過結(jié)算得出扮休。
GEO
地理位置計算