Redis 成為監(jiān)視器

2018-08-02 15:00 更新

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

def MONITOR():

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

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

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

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

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)