搜尋

首頁  >  問答  >  主體

談談Redis的incr命令

incr命令自動加一是隻相對於這台機器而言還是相對於整個redis集群?
比如我一開始隻有1台機器。有一個參數是count,這台機器的count達到了10000。
然後我增加了一台redis機器。
很顯然,我的初衷是我再來取count的時候是從10000開始的。也就是說,整個變量對整個redis集群而言是唯一的。
此外,redis的主從同步大概要花多長時間?(就是立即同步那種,數據隻存在內存中間)

大家讲道理大家讲道理2797 天前661

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-04-22 09:02:09

    你需要叢集中的機器保持資料一致性,前提是有主備關係。
    你在A機器上對一個變數a做incr操作到10000,其他機器是不會去更新你這個值的,除非在集群中你這台機器是master,而其他機器都是你這台機器的slave,這樣其他機器會去把它自己的a值更新到10000;
    增加機器也一樣,增加的機器如果是你這台機器的slave,那麼它會更新a的值。從10000開始。

    回覆
    0
  • 黄舟

    黄舟2017-04-22 09:02:09

    你看過redis叢集的實作與配置嗎? redis自己的叢集實作像是三台機器ABC,A裡有了key:"A_KEY",那麼操作叢集去get set不論在哪台(ABC)機器去執行,拿到都是A裡的key:"A_KEY" ,所以你的這個問題的答案是沒問題的。

    但你提到了增加機器,上面的答案是建立在假設你作為用戶操作都沒有錯誤的情況下,增加機器就要把之前分到ABC3台機器的分量改成ABCD4台機器,所以這裡面有一些要操作的東西。

    回覆
    0
  • 取消回覆