久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      redis如何保證數(shù)據(jù)一致性

      現(xiàn)在redis在互聯(lián)中有大量的使用,根據(jù)業(yè)務的不同,其使用上也有所不同,但一般都有數(shù)據(jù)存儲和緩存的一致性問題,下面就給大家介紹幾個比較成熟實用的方案。

      redis如何保證數(shù)據(jù)一致性

      方式1:

      數(shù)據(jù)庫保存數(shù)據(jù),redis不persist redis啟動后,從數(shù)據(jù)庫加載數(shù)據(jù) 不要求強一致實時性的讀請求,都由redis處理 要求強一致實時性的讀請求,由數(shù)據(jù)庫處理 寫請求有2種處理方式,由數(shù)據(jù)庫處理 (推薦學習:Redis視頻教程)

      應用先寫道數(shù)據(jù)庫,然后更新redis

      應用先寫道數(shù)據(jù)庫,然后其它daemon同步到redis

      優(yōu)點:redis啟動不用處理redis數(shù)據(jù)和數(shù)據(jù)庫不一致

      缺點:redis啟動給數(shù)據(jù)庫很大的讀壓力

      方式2:

      數(shù)據(jù)庫和redis分別處理不同的數(shù)據(jù)類型,數(shù)據(jù)庫處理要求強一致實時性的數(shù)據(jù),例如金融數(shù)據(jù)、交易數(shù)據(jù);Redis處理不要求強一致實時性的數(shù)據(jù),例如網(wǎng)站最熱貼排行榜

      redis和MySQL數(shù)據(jù)的同步,代碼級別大致可以這樣做: 讀: 讀redis->沒有,讀mysql->把mysql數(shù)據(jù)寫回redis 寫: 寫mysql->成功,寫redis

      并發(fā)不高的情況: 讀: 讀redis->沒有,讀mysql->把mysql數(shù)據(jù)寫回redis,有的話直接從redis中取; 寫: 寫mysql->成功,再寫redis;

      并發(fā)高的情況: 讀: 讀redis->沒有,讀mysql->把mysql數(shù)據(jù)寫回redis,有的話直接從redis中取; 寫:異步話,先寫入redis的緩存,就直接返回;定期或特定動作將數(shù)據(jù)保存到mysql,可以做到多次更新,一次保存;

      –備注:如果寫redis要使用redis的事務:

      127.0.0.1:6379> WATCH id OK 127.0.0.1:6379> MULTI OK 127.0.0.1:6379> INCR id QUEUED 127.0.0.1:6379> EXEC 1) (integer) 342183 127.0.0.1:6379>

      方式3:

      使用lua腳本:redis在使用lua使用同時只允許一個腳本執(zhí)行,符合事務的原子性,但一個lua腳本不能執(zhí)行時間過大,不然會阻塞

      EVAL

      EVAL命令對 Lua 腳本進行執(zhí)行求值。

      語法:

      EVAL script numkeys key [key …] arg [arg …]
      script lua腳本內容 注意的是腳本不應該是Lua函數(shù)。 numkeys 表示指定鍵名參數(shù)的個數(shù)。 key [key ...] 表示腳本對應的key值列表 在腳本中可以使用KEYS[1] KEYS[2] KEYS[3]KEYS[n] n從1開始 。 arg [arg ...] 命名行中傳遞的參數(shù)列表 在腳本中可以使用ARGV[1] ARGV[2] ARGV[3]ARGV[n] n從1開始 。

      一個示例勝過千言萬語的解釋

      eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 id name 3 mytest

      執(zhí)行上面腳本返回

      1) "id"2) "name" 3) "2" 4) "mytest"

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號