我與Redis的第一次

我與Redis的第一次

1.背景

1.1 網(wǎng)站流量大,并發(fā)高 -> MySQL瓶頸###

  1. 文件緩存:IO壓力大
  2. 主從復(fù)制讀寫分離:主寫壓力存在瓶頸
  3. 分表分庫(kù):分庫(kù)方式隨需求變化大

1.2 去掉數(shù)據(jù)庫(kù)的關(guān)系特性 -> NoSQL###

  1. 數(shù)據(jù)之前無(wú)關(guān)系 -> 擴(kuò)展性好
  2. 數(shù)據(jù)庫(kù)結(jié)構(gòu)簡(jiǎn)單 -> 高性能
  3. 無(wú)需為存儲(chǔ)的數(shù)據(jù)建立字段 -> 靈活的數(shù)據(jù)模型

1.3 Memcached###

  1. 內(nèi)存數(shù)據(jù)庫(kù),緩存數(shù)據(jù)庫(kù)查詢結(jié)果

2. Redis

2.1 Remote Dictionary Server

1. Key-value型NoSQL數(shù)據(jù)庫(kù)

Why Redis, Not Memcached?###

1. Redis支持多種value數(shù)據(jù)類型(String, list, set, zset, hash)
2. Redis支持?jǐn)?shù)據(jù)持久化
3. Redis使用更高效的內(nèi)存管理機(jī)制
4. Redis支持分布式集群

3. Redis支持的value數(shù)據(jù)類型

1.String 
    struct{
          int len;//buf 已占長(zhǎng)度
          int free;//buf 剩余可用長(zhǎng)度
          char buf[]; //實(shí)際存儲(chǔ)字符串的地方
      };
2.List
Paste_Image.png

3.Set
4.SortSet
5.Hash

4.Redis數(shù)據(jù)持久

RDB

1. 保存某個(gè)時(shí)間點(diǎn)Redis上的數(shù)據(jù)集
2. 優(yōu)點(diǎn):相對(duì)AOF,文件比較緊湊
3. 缺點(diǎn):備份時(shí)間長(zhǎng),不能頻繁備份,宕機(jī)丟數(shù)據(jù)量大。

AOF

1.保存Redis寫操作
2.優(yōu)點(diǎn):備份時(shí)間短,可頻繁備份,宕機(jī)丟數(shù)據(jù)量少。
3.缺點(diǎn):文件大;處理大量寫入時(shí),AOF較慢。

5.Redis內(nèi)存管理

5.1 磁盤交換

 1.Key一直存內(nèi)存
 2.內(nèi)存耗盡 - > 最不常用的value存到磁盤中
 3.數(shù)據(jù)量 > 內(nèi)存量
 4.Memcached所不具備

5.2 內(nèi)存管理機(jī)制

Memcached

  1.內(nèi)存劃分固定規(guī)格
  2.內(nèi)存碎片少但浪費(fèi)較大
Paste_Image.png

Redis

  1.動(dòng)態(tài)分配內(nèi)存塊大小
redis動(dòng)態(tài)分配內(nèi)存.png

6. Redis分布式集群

Memcache

Paste_Image.png

Redis

Paste_Image.png

7. Redis事件機(jī)制

7.1 文件事件

讀事件

1.客戶端連上時(shí)綁定,狀態(tài)等待
2.命令請(qǐng)求到達(dá)服務(wù)端時(shí),狀態(tài)變成就緒

寫事件

1.服務(wù)端有信息返回給客戶端,但客戶端未能寫,狀態(tài)等待
2.服務(wù)端信息能返回給客戶端,狀態(tài)就緒

7.2 時(shí)間事件

1. Redis對(duì)自身資源狀態(tài)的定時(shí)檢查

7.3 事件機(jī)制

1.事件機(jī)制
2.無(wú)搶占
3.先文件事件、后時(shí)間事件
事件機(jī)制.png

8. Redis服務(wù)端初始化

1.初始化全局狀態(tài)
2.載入配置文件
3.創(chuàng)建Daemon進(jìn)程
4.初始化服務(wù)器功能模塊
5.載入數(shù)據(jù)
6.開(kāi)始事件循環(huán)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Redis高可用概述 在介紹Redis高可用之前,先說(shuō)明一下在Redis的語(yǔ)境中高可用的含義。 我們知道,在w...
    空語(yǔ)閱讀 1,678評(píng)論 0 2
  • 一、Redis持久化概述 持久化的功能:Redis是內(nèi)存數(shù)據(jù)庫(kù),數(shù)據(jù)都是存儲(chǔ)在內(nèi)存中,為了避免進(jìn)程退出導(dǎo)致數(shù)據(jù)的永...
    心似南風(fēng)閱讀 1,005評(píng)論 0 1
  • 1.項(xiàng)目中緩存是如何使用的?為什么要用緩存?緩存使用不當(dāng)會(huì)造成什么后果? 面試題剖析 為什么要用緩存? 用緩存,主...
    jsbintask閱讀 9,338評(píng)論 0 217
  • 少小村行三五里,曾把東塘說(shuō)鏡湖。 十年風(fēng)雨常自立,無(wú)問(wèn)他人計(jì)安出。 也逢長(zhǎng)安豪放客,手?jǐn)S金龜換一壺。 可待滄海識(shí)珠...
    子玉作詩(shī)詞閱讀 465評(píng)論 0 7
  • 早上好!靜暖人生:每日一句正能量[玫瑰][玫瑰] (2018年3月5日 農(nóng)歷正月十八 星期一) 你看重一個(gè)人, 一...
    俠姐27687閱讀 315評(píng)論 0 2

友情鏈接更多精彩內(nèi)容