2011-10-08 110 views
0

我有3個虛擬機vm1,vm2和redis-server全部相互連接。Redis延遲鍵添加

vm2上的各種進程,調用vm1中的RPC。但是RPC的參數存儲在Redis中。 vm2將密鑰傳遞給參數vm1。 vm1獲取相應的值(即參數)並執行呼叫。大多數時候它完美地工作。

但是,有時我發現vm1無法獲取屬於由vm2發送的密鑰的值。過了一會兒,我發現鍵值被添加到了redis服務器。

我查看了redis配置文件,看看是否有某個選項導致了這個問題。還搜查了一些文件。但是,我不知道爲什麼會發生這種情況。

有人會知道爲什麼會發生這種情況並解決這個問題嗎?

回答

0

這裏沒有太多的細節,所以這主要是在黑暗中刺傷。但是,我會考慮在將數據設置到redis服務器時是否使用異步(即非阻塞)調用。在實際設置redis-server中的數據之前,使用異步調用可以將密鑰發送到vm2。

至於如何確定,它取決於你用來與Redis接口的庫。