电竞比分网-中国电竞赛事及体育赛事平台

分享

Redis緩存數(shù)據(jù)庫(一)

 頭號碼甲 2022-04-20

先導(dǎo)知識:Memcache

Memcache是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),代碼類似于Hash。

已經(jīng)有了Memcache,為什么還要用Redis呢?

下面Memcache的缺點(diǎn):

  • 不支持?jǐn)?shù)據(jù)持久化存儲
  • 不支持主從
  • 不支持分片

而對比Redis數(shù)據(jù)庫,以上三點(diǎn)都支持,所以要使用redis。

 問題一:為什么redis能這么快?

  Redis的訪問速度可達(dá) 10萬+QPS(query per second,每秒內(nèi)查詢次數(shù))。

  1. 完全基于內(nèi)存:絕大部分請求是純粹的內(nèi)存操作,不受限于硬盤讀取速度,故而執(zhí)行效率高
  2. 數(shù)據(jù)結(jié)構(gòu)簡單,是(key,value)形式,對數(shù)據(jù)的操作也簡單
  3. 采用單線程也能處理高并發(fā)請求
  4. 相對于傳統(tǒng)的阻塞I/O,Redis使用多路I/O復(fù)用模型,非阻塞I/O
  5. 具有原子性操作。
問題二:Redis采用的多路I/O復(fù)用函數(shù)?

  多路I/O復(fù)用函數(shù)有:epoll、kqueue、evport、select    鏈接:多路I/O復(fù)用技術(shù)

  1. 因地制宜,有的系統(tǒng)只有select
  2. 優(yōu)先選擇時間復(fù)雜度為O(1)的函數(shù)作為底層實(shí)現(xiàn)
  3. 以時間復(fù)雜度為O(n)的select作為保底
  4. 基于reactor設(shè)計模式監(jiān)聽I/O事件
 問題三:Redis的數(shù)據(jù)類型有哪些?(重點(diǎn)?。。?/span>
  1. string:最基本的數(shù)據(jù)類型,二進(jìn)制安全,可以存儲任何格式的數(shù)據(jù)(jpg圖片,序列化的對象)
  2. hash:string元素組成的字典,適合用于存儲對象
  3. list:列表,特點(diǎn):先進(jìn)先出、有序(按添加順序)、可重復(fù)
  4. set:string元素組成的無序集合,通過hash實(shí)現(xiàn),不允許重復(fù)
  5. sorted set:通過分?jǐn)?shù)來為集合的成員進(jìn)行從小到大的排序
  6. 用于計數(shù)的HyperLogLog
  7. 用于支持存儲地理位置信息的Geo
Redis的底層數(shù)據(jù)類型基礎(chǔ):

  1、簡單動態(tài)字符串;2、鏈表;3、字典;4、跳躍表

  5、整數(shù)集合;6、壓縮列表;7、對象

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多