Redis 成為監(jiān)視器

2018-08-02 15:00 更新

發(fā)送 MONITOR 命令可以讓一個普通客戶端變?yōu)橐粋€監(jiān)視器, 該命令的實現(xiàn)原理可以用以下偽代碼來實現(xiàn):

def MONITOR():

    # 打開客戶端的監(jiān)視器標志
    client.flags |= REDIS_MONITOR

    # 將客戶端添加到服務器狀態(tài)的 monitors 鏈表的末尾
    server.monitors.append(client)

    # 向客戶端返回 OK
    send_reply("OK")

舉個例子, 如果客戶端 c10086 向服務器發(fā)送 MONITOR 命令, 那么這個客戶端的 REDIS_MONITOR 標志會被打開, 并且這個客戶端本身會被添加到 monitors 鏈表的表尾。

假設客戶端 c10086 發(fā)送 MONITOR 命令之前, monitors 鏈表的狀態(tài)如圖 24-2 所示, 那么在服務器執(zhí)行客戶端 c10086 發(fā)送的 MONITOR 命令之后, monitors 鏈表將被更新為圖 24-3 所示的狀態(tài)。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號