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

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

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

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

        方式1:

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

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

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

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

        缺點(diǎn):redis啟動(dòng)給數(shù)據(jù)庫很大的讀壓力

        方式2:

        數(shù)據(jù)庫和redis分別處理不同的數(shù)據(jù)類型,數(shù)據(jù)庫處理要求強(qiáng)一致實(shí)時(shí)性的數(shù)據(jù),例如金融數(shù)據(jù)、交易數(shù)據(jù);Redis處理不要求強(qiáng)一致實(shí)時(shí)性的數(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的緩存,就直接返回;定期或特定動(dòng)作將數(shù)據(jù)保存到mysql,可以做到多次更新,一次保存;

        –備注:如果寫redis要使用redis的事務(wù):

        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使用同時(shí)只允許一個(gè)腳本執(zhí)行,符合事務(wù)的原子性,但一個(gè)lua腳本不能執(zhí)行時(shí)間過大,不然會阻塞

        EVAL

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

        語法:

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

        一個(gè)示例勝過千言萬語的解釋

        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號
        主站蜘蛛池模板: 亚洲?V无码成人精品区日韩| 国产成人精品无码播放| 亚洲处破女AV日韩精品| 国产国拍亚洲精品福利| 99热门精品一区二区三区无码| 日本午夜精品理论片A级APP发布| 老司机99精品99| 999久久久无码国产精品| 伊在人亚洲香蕉精品区麻豆| 国产欧美日韩综合精品一区二区三区 | 国产精品高清免费网站| 国产精品高清视亚洲精品| 日韩精品极品视频在线观看免费| 麻豆国产高清精品国在线| 99久久亚洲综合精品网站| 国产午夜精品理论片久久影视| 日韩精品内射视频免费观看| 亚洲AV日韩精品一区二区三区| 久久精品国产99久久丝袜| 国产偷国产偷高清精品| 97精品在线播放| 日本精品在线视频| 动漫精品专区一区二区三区不卡| 无码精品久久久久久人妻中字| 亚洲AV无码成人精品区狼人影院| 欧美久久亚洲精品| 久久93精品国产91久久综合| 国产精品亚洲精品日韩已方| 91嫩草亚洲精品| 国产精品二区观看| 国产精品五月天强力打造| 国模和精品嫩模私拍视频| 精品中文高清欧美| 热RE99久久精品国产66热| 亚洲AV永久无码精品一区二区| 午夜精品久久久久久久无码| 一本一道久久a久久精品综合| 自拍偷自拍亚洲精品被多人伦好爽| 免费人成在线观看欧美精品 | 精品欧美| 久热这里只有精品99国产6|