Redis(續(xù))

一.Redis事務

1. Redis 事務可以一次執(zhí)行多個命令, 并且?guī)в幸韵聝蓚€重要的保證:

(1) 事務是一個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執(zhí)行。事務在執(zhí)行的過程中,不會被其他客戶端發(fā)送來的命令請求所打斷。
(2) 事務是一個原子操作:事務中的命令要么全部被執(zhí)行,要么全部都不執(zhí)行。

2. 一個事務從開始到執(zhí)行會經(jīng)歷以下三個階段:

(1) 開始事務。
(2) 命令入隊。
(3) 執(zhí)行事務。

3. 事務命令
命令 描述
MULTI 標記一個事務塊的開始。
EXEC 執(zhí)行所有事務塊內的命令。
DISCARD 取消事務,放棄執(zhí)行事務塊內的所有命令。
WATCH 監(jiān)視一個(或多個) key ,如果在事務執(zhí)行之前這個(或這些) key 被其他命令所改動,那么事務將被打斷。
UNWATCH 取消 WATCH 命令對所有 key 的監(jiān)視。

二. 主從模式

1. 作用:

(1) 備份數(shù)據(jù)
(2) 負載均衡,master節(jié)點可以進?讀和寫,slave節(jié)點只進?讀操作。

2. Redis 的主從配置

(1) 在?臺機器上啟動多個redis實例,需要修改?下配置,保證多個redis實例出現(xiàn)共享數(shù)據(jù)。
(2) 修改master主服務器 redis.windows.conf

// 設置主服務器IP地址
bind 127.0.0.1
// 設置端口號
port 6379
// 數(shù)據(jù)存儲文件名
dbfilename dump.rdb

(3) 修改slave從服務器

// 配置從服務器的IP地址
bind 127.0.0.1
// 配置端口號
port 6380
// 數(shù)據(jù)存儲文件名
dbfilename dump.rdb
// 配置從服務器從屬于主服務器的地址
slaveof 127.0.0.1 6379
3. 哨兵模式:

主從模式中,當master節(jié)點掛了以后,slave節(jié)點不能主動選舉?個master節(jié)點出來,那么我就安排?個或多個sentinel來做這件事,當sentinel發(fā)現(xiàn)master節(jié)點掛了以后,sentinel就會從slave中重新選舉?個新的master。

三. 緩存問題

1.緩存穿透

(1)緩存穿透是指查詢?個數(shù)據(jù)庫?定不存在的數(shù)據(jù)。

  • ?并發(fā)下,?秒鐘前?百個請求向數(shù)據(jù)庫請求,第?百零?個數(shù)據(jù)發(fā)現(xiàn)緩存有了,就去訪問緩存,?影響。
  • ?并發(fā)下,?秒鐘?百萬個請求都去請求?個數(shù)據(jù),但是緩存沒有,再去請求數(shù)據(jù)庫,數(shù)據(jù)庫?也不存在,此時,這?百萬個請求已經(jīng)和數(shù)據(jù)庫交互了。所以叫做繞過緩存,把redis緩存數(shù)據(jù)庫穿透了。
  • 想象?下,uuid查詢,很容易找到?個不存在的key,惡意攻擊,利?這個漏洞,很容易給服務器帶來巨?的壓?。

(2) 解決?案:把不存在的給個null,放?緩存,可以防?攻擊?戶反復?同?個id暴?攻擊。

2.緩存擊穿

(1) 描述:緩存擊穿是指緩存中沒有但數(shù)據(jù)庫中有的數(shù)據(jù)(?般是緩存時間到期),這時由于并發(fā)?戶特別多,同時讀緩存沒讀到數(shù)據(jù),?同時去數(shù)據(jù)庫去取數(shù)據(jù),引起數(shù)據(jù)庫壓?瞬間增?,造成過?壓?。
(2) 例?:淘寶爆款商品
(3) 解決?案:設置熱點數(shù)據(jù)永遠不過期。

3.緩存雪崩
  1. 緩存雪崩:
    (1)指緩存中數(shù)據(jù)?批量到過期時間甚?緩存服務器宕機,?查詢數(shù)據(jù)量巨?,引起數(shù)據(jù)庫壓
    ?過?甚?宕機。
    (2)和緩存擊穿不同的是,緩存擊穿指并發(fā)查同?條數(shù)據(jù),緩存雪崩是不同數(shù)據(jù)都過期了,很多數(shù)據(jù)都查不到從?查數(shù)據(jù)庫。
  2. 解決?案:?般采取不同分類商品,設計隨機因?,緩存不同周期。

今天是我在千鋒線上學習的第54天,加油!!!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • NOSQL類型簡介鍵值對:會使用到一個哈希表,表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù),如redis,volde...
    MicoCube閱讀 4,159評論 2 27
  • Memcache和Redis的區(qū)別?Redis和memcached 的內存管理的區(qū)別? 網(wǎng)絡IO模型:Memcac...
    星冉子閱讀 640評論 0 1
  • redis redis是單線程的,但是一般的作為緩存使用的話,redis足夠了,因為它的讀寫速度太快了。官方的一個...
    普度眾生的面癱青年閱讀 5,308評論 0 4
  • 基于內存的NoSQL數(shù)據(jù)庫。提供五種數(shù)據(jù)結構的存儲。字符串、列表、集合、有序集合、散列表。Redis 支持很多特性...
    韓絕交閱讀 811評論 0 1
  • 給女兒的一句話:要懂得延遲滿足,學會用時間觀點去看待事物,好的美的一定是經(jīng)得起時間檢驗的。
    吾乃哲貓閱讀 59評論 0 0

友情鏈接更多精彩內容