2017-05-23 63 views
0

我們使用StackExchange.Redis作爲redis客戶端。Redis客戶端。如何區分讀/寫操作?

是否有可能告訴客戶嚴格使用127.0.0.1:1001而嚴格使用127.0.0.2?

enter image description here

+1

當主節點變壞或者您只需重新啓動時,預期的行爲是什麼?此外,您將無法讀取自己的寫入,因爲複製是異步的,所以它是'兩臺主機之間的網絡延遲+異步複製引入的任何延遲' – evilSnobu

+0

主控制器關閉時,其中一個哨兵新的那一個。至於延遲,在我們的情況下可以。 –

回答

0

如果Redis的服務器127.0.0.1:1002是slaveof 127.0.0.1:1001,那麼你可以執行你的 '寫' 這樣的

redisClient.StringSet("key", "value", flags: CommandFlags.DemandMaster); 

還命令,我可以看到,那redisClient自然會執行命令,需要在master上寫''。對於「讀」命令,你可以寫

redisClient.StringGet("key", flags: CommandFlags.DemandSlave); 

但是,如果你的奴隸將不可用,你會得到一個異常。另一種選擇

CommandFlags.PreferSlave 

從文檔:

這個操作應該在從被執行,如果它是可用的,但如果沒有奴隸可將在主服務器上進行。僅適用於讀取操作。