redis

一,常見非關系數(shù)據(jù)庫和sql

關系型數(shù)據(jù)庫 mysql oracle
非關系型數(shù)據(jù)庫mongodb redis

二, redis重要特性

1.速度快耘拇,源碼少,不依賴操作系統(tǒng)中的類庫

redis 所有的數(shù)據(jù)都存放在內存中
redis 使用c語言實現(xiàn)
redis 使用單線程架構

2.基于鍵值對的數(shù)據(jù)結構服務器
  物種數(shù)據(jù)結構:
       字符串:  設置一個key mset k1 2 k2 3 k4 4 MSET,MGET
       哈希:由鍵值對組成 HMSET指令設置hash中的多個域
  **生成一個hash類型:**
  HMSET user:1 name xiaozhang job it age 28
  HMSET user:2 name abc job it age 28
  HMSET user:3 name def job it age 28
  **查看hash里的多個值**
  HMGET user:1 name age job
  **查看hash里的所有的值**
  HGETALL user:1
  **mysql數(shù)據(jù)和redis哈希對比:**
  user表
  uid  name         job  age 
  1  xiaozhang  it   28 
  2  xiaoya     it   28 
  3  yazhang    it   28 
  **redis緩存mysql數(shù)據(jù)**
  名字  key1 k1值 key2 k2的值 key3 k3的值
  uid:1 name xiaozahng job it age 28
  uid:2 name xiaoya job it age 28
  uid:3 name yazahng job it age 28
   列表
   集合
   有序集合
3.豐富的功能

提供鍵過期功能缺狠,可以實現(xiàn)緩存。使用單線程模型萍摊,服務端處理模型簡單挤茄。客戶端語言多冰木,java,PHP,python,C, Nodejs等

4. redis支持數(shù)據(jù)的持久化

實現(xiàn)把所有數(shù)據(jù)存放在內存中RDB和AOF

5. redis的主從復制和高可用

哨兵 redis-sentinel
集群 redis-cluster

三 redis的應用場景

  1. 緩存過期時間穷劈,就是設置k值過期 expire k1 100 設置100秒過期
  persist k1 取消過期時間
      緩存session會話
      緩存用戶信息,找不到再去mysql查,查到然后回寫到redis  
      優(yōu)惠卷過期時間
  2. 排行榜-列表&有序集合
     熱度排行榜
     發(fā)布時間排行榜
  3. 計數(shù)器天然支持計數(shù)器  INCR K1(加1)INCRBY K1 10(加10)
      如 帖子瀏覽數(shù)
      視頻播放次數(shù)
      商品瀏覽數(shù)
  4. 社交網(wǎng)絡-集合
  5. 消息列隊系統(tǒng)-發(fā)布訂閱
      配合ELK實現(xiàn)日志收集

四 redis持久化

總所周知redis是內存數(shù)據(jù)庫,當redis所在服務器宕機所以數(shù)據(jù)就會丟失踊沸,為解決這個問題 redis 用rdb 和aof來解決
牛逼持久化鏈接 https://www.shuzhiduo.com/A/amd0oNam5g/
用RDB和AOF實現(xiàn)
RDB:實現(xiàn)快照功能歇终,把當前內存里的狀態(tài)快照到磁盤上
優(yōu)點,恢復速度快
缺點:可能會丟失數(shù)據(jù)
AOF:類似與mysql的binlog逼龟,重寫 一秒一次
優(yōu)點评凝,安全,有可能丟失一秒的數(shù)據(jù)
缺點腺律,文件比較大奕短,恢復速度慢
當插入一個新K時會1秒后先觸發(fā)aof文件記錄內容,故當rdb和aof文件同時存在時 優(yōu)先讀取aof文件匀钧。

  RDB的配置文件配置持久化參數(shù)
  save 900 1
  save 300 10
  save 60 10000    60秒發(fā)生一萬次K的該變就會觸發(fā)將數(shù)據(jù)寫入到磁盤
  dir /data/redis_6379/
  dbfilename redis_6379.rdb
  結論:
  1.執(zhí)行shutdown的時候,內部會自動執(zhí)行bgsave,然后再執(zhí)行      shutdown
  2.pkill kill killall 都類似于執(zhí)行shutdown命令.會觸發(fā)bgsave持久化
  3.恢復的時候,rdb文件名稱要和配置文件里寫的一樣
  4.如果沒有配置save參數(shù),執(zhí)行shutdown不會自動bgsave持久化 
  5.如果沒有配置save參數(shù),可以手動執(zhí)行bgsave觸發(fā)持久化保存
  五翎碑,redis的高可用原理
  建立主從,在redis服務器上設置哨兵監(jiān)控主從狀態(tài)實時進    行故障轉移之斯。當主故障庫修復后日杈,如果想恢復主庫的地位,需要手動設置權重為0佑刷,然后重建手動改變
  10.模擬權重選舉
  - 設置其他節(jié)點的權重為0
  - 手動發(fā)起重新選舉
  - 觀察所有節(jié)點消息是否同步
  - 觀察切換結果是否符合預期
  命令解釋:
  1.查詢命令:CONFIG GET slave-priority
  2.設置命令:CONFIG SET slave-priority 0
  3.主動切換:sentinel failover mymaster
  操作命令:
  redis-cli -h db02 -p 6379 CONFIG SET slave-priority 0
  redis-cli -h db03 -p 6379 CONFIG SET slave-priority 0
  redis-cli -h db01 -p 26379 sentinel failover mymaster
  驗證選舉結果:
  redis-cli -h db01 -p 26379 Sentinel get-master-addr-by-name mymaster
  恢復DB01主哨兵后 恢復正常的優(yōu)先級
  redis-cli -h db02 -p 6379 CONFIG SET slave-priority 100
  redis-cli -h db03 -p 6379 CONFIG SET slave-priority 100

五莉擒,redis的主從復制高可用

redis的主從復制,時在分布式系統(tǒng)中解決單點問題项乒,通常會將數(shù)據(jù)復制多個副本到其他機器上啰劲,滿足故障恢復和負載均衡。同時復制功能也是運行高可用的基礎檀何。

六蝇裤,主從復制哨兵

  運行在redis的主從復制模式下,解      決主節(jié)點一旦發(fā)生故障不需要人工干      預的問題频鉴,redis的哨兵方案實現(xiàn)的高      可用對系統(tǒng)可用性非常由幫助栓辜。
  redis sentinel時一個分布式系統(tǒng),為redis提供高可用功能垛孔,主要功能是1. 監(jiān)控redis服務器節(jié)點看主從之間是否運行正常
  2.提醒運維運維人員發(fā)送故障通知
  3.自動故障遷移failover藕甩,當主服務    器故障時  哨兵會開始一次故障遷移操作,選擇該主從中的一個從節(jié)點作為新主周荐,并讓其他的從服務器重新復制新主的數(shù)據(jù)狭莱。并且當客戶端連接原先的主服務器時僵娃,集群也會像客戶端返回新主的地址。架構圖如下
image.png

image.png
哨兵安裝配置命令
  哨兵是基于主從復制腋妙,所以需要先部署好主從復制
  手工操作步驟如下: 1.先配置和創(chuàng)    建好 1 臺服務器的節(jié)點和哨兵 2.使用 rsync 傳輸?shù)搅硗?2 臺機器 3.修改另外兩臺機器的 IP 地址 建議使用     ansible 劇本批量部署

  配置主從關系
  db02 和 db03
  redis-server       /opt/redis_6379/conf/redis_6379.conf
  redis-cli slaveof 10.0.0.51 6379
  ps -ef|grep redis
   啟動哨兵
  3 臺都操作
  redis-sentinel       /opt/redis_26379/conf/redis_26379.conf
,手動恢復主庫默怨,既模擬故障恢復
  1.主發(fā)生故障后,骤素,觀察其他從庫的日志變化匙睹,故障轉移后哨兵配置文件的變化。
  2. 修好主庫后開啟主庫济竹,在從庫中設置優(yōu)先級為0:.查詢命令:CONFIG GET slave-priority
  3.設置命令:CONFIG SET slave-priority 0
  4.再在主庫中sentinel failover mymaster.重新設置自己為主
  5.改回原先設置的從優(yōu)先級默認的值100痕檬,方便下次故障轉移。

七送浊,redis Cluster

redis cluster 時redis的分布式解決方案梦谜,在3.0版本正式推出
當遇到單機,內存罕袋,并發(fā)改淑,流量等瓶頸時,可用采用cluster架構方案達到負載均衡目的浴讯。

官方的redis Cluster集群方案, 很好的解決了集群方面的問題
  分布式redis數(shù)據(jù)庫時將整個數(shù)據(jù)庫按照分區(qū)規(guī)則映射到多個節(jié)點蔼啦,將數(shù)據(jù)集劃分到多個節(jié)點上榆纽,
  每個節(jié)點負責整體數(shù)據(jù)的一個子集,采用的是hash分片規(guī)則捏肢。
image.png

image.png
集群規(guī)劃目錄規(guī)劃
 redis 安裝目錄
  /opt/redis_{PORT}/{conf,logs,pid}
   redis 數(shù)據(jù)目錄
 /data/redis_{PORT}/redis_{PORT}.rdb
   redis 運維腳本
  /root/scripts/redis_shell.sh
拓撲規(guī)劃很重要奈籽,劃清主從復制關系,同時考慮高可用
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鸵赫,一起剝皮案震驚了整個濱河市衣屏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辩棒,老刑警劉巖狼忱,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異一睁,居然都是意外死亡钻弄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門者吁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窘俺,“玉大人,你說我怎么就攤上這事复凳×隼幔” “怎么了灶泵?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長对途。 經常有香客問我赦邻,道長,這世上最難降的妖魔是什么掀宋? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任深纲,我火速辦了婚禮蘑志,結果婚禮上女气,老公的妹妹穿的比我還像新娘抡笼。我一直安慰自己只嚣,他們只是感情好靴庆,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布武氓。 她就那樣靜靜地躺著涌穆,像睡著了一般突那。 火紅的嫁衣襯著肌膚如雪侨颈。 梳的紋絲不亂的頭發(fā)上余赢,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音哈垢,去河邊找鬼妻柒。 笑死,一個胖子當著我的面吹牛耘分,可吹牛的內容都是我干的举塔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼求泰,長吁一口氣:“原來是場噩夢啊……” “哼央渣!你這毒婦竟也來了?” 一聲冷哼從身側響起渴频,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤芽丹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卜朗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拔第,經...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年聊替,在試婚紗的時候發(fā)現(xiàn)自己被綠了楼肪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡惹悄,死狀恐怖春叫,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤暂殖,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布价匠,位于F島的核電站,受9級特大地震影響呛每,放射性物質發(fā)生泄漏踩窖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一晨横、第九天 我趴在偏房一處隱蔽的房頂上張望洋腮。 院中可真熱鬧,春花似錦手形、人聲如沸啥供。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伙狐。三九已至,卻和暖如春瞬欧,著一層夾襖步出監(jiān)牢的瞬間贷屎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工艘虎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留唉侄,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓野建,卻偏偏與公主長得像美旧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贬墩,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353