<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Redis的使用場景與使用Redis的原因

          共 1309字,需瀏覽 3分鐘

           ·

          2022-01-13 02:12

          Redis 不是全能工

          在講 Redis 緩存時(shí),我們會(huì)聯(lián)想到 Memcache 和 Redis 的優(yōu)缺點(diǎn)有哪些,其實(shí) Redis 和 Memcache 并不能進(jìn)行比較.一個(gè)是既能做緩存又能做其他的事情,一個(gè)是僅僅只做緩存。常常我們會(huì)把兩個(gè)聯(lián)想在一起主要是因?yàn)?Redis 廣泛應(yīng)用在緩存,那 Redis 哪些能干?哪些不能干呢?

          Redis 能干的事情 Redis 緩存在日常開發(fā)中廣泛應(yīng)用,在提高服務(wù)器性能方面也有顯著的效果

          1. 排行榜 ? 如果使用關(guān)系型數(shù)據(jù)庫非常麻煩,而利用redis的sortSet數(shù)據(jù)結(jié)構(gòu)能夠非常方便搞定
          2. 計(jì)算器/限速器 ?利用Redis中的原子性的自增操作 ?我們可以統(tǒng)計(jì)類似用戶點(diǎn)贊數(shù) ?用戶訪問數(shù)等 ?這類操作如果用MySQL數(shù)據(jù)庫會(huì)造成非常大的服務(wù)器壓力,限流器比較典型的應(yīng)用場景就是限制某個(gè)API的頻率 ?常用應(yīng)用場景有 ?限購 防止用戶瘋狂點(diǎn)擊造成服務(wù)器的壓力
          3. 好友關(guān)系 ?利用集合的一些命令 比如求 差集 ?交集 并集等 方便搞定一些共同好友 ?共同愛好的功能。
          4. 簡單的消息隊(duì)列 ?除了Redis自身的發(fā)布/訂閱模式 ?我們可以利用List來實(shí)現(xiàn)一個(gè)隊(duì)列機(jī)制 ?比如到貨通知 ?郵件發(fā)送之類的需求 ?不需要高可靠 ?但是會(huì)帶來非常大的DB壓力,完全可以用List來完成異步解耦。
          5. Session共享 默認(rèn)Session是保存在服務(wù)器的文件中,如果是集群服務(wù),同一個(gè)用戶過來可能落在不同機(jī)器上,這就會(huì)導(dǎo)致用戶頻繁登錄 采用Redis保存Session后 ?無論用戶落在那臺(tái)機(jī)器上都能夠獲取到對(duì)應(yīng)的Session信息上

          Redis不能干哪些事情

          Redis感覺能干的事情特別多 ?但是不是萬能的 ?合適的地方用它事半功倍 ?如果濫用可能導(dǎo)致系統(tǒng)的不穩(wěn)定,成本的增高等問題

          1. 用Redis去保存用戶的基本信息,雖然它能夠支持持久化,但是它的持久化方案并不能保證數(shù)據(jù)絕對(duì)的落地,并且還可能帶來Redis性能下降,因?yàn)槌志没^頻繁會(huì)增大Redis服務(wù)的壓力
          2. 簡單來講就是數(shù)據(jù)量過大 ?數(shù)據(jù)訪問頻率低的業(yè)務(wù)不適合使用Redis ?數(shù)據(jù)太大吧會(huì)增加成本 ?訪問頻率太低 ?保存在內(nèi)存中純屬浪費(fèi)資源

          Redis的優(yōu)點(diǎn)

          Redis緩存速度快 ?完全基于內(nèi)存 ?使用C語言實(shí)現(xiàn) ?網(wǎng)絡(luò)層使用EPoll解決高并發(fā)問題,單線程模型避免不必要的上下文切換機(jī)器競爭條件

          注意:單線程僅僅是說在網(wǎng)絡(luò)請(qǐng)求這一模塊上用一個(gè)請(qǐng)求處理客戶端的請(qǐng)求,像持久化它就會(huì)重開一個(gè)線程/進(jìn)程去進(jìn)行處理

          Redis 有 8 種數(shù)據(jù)類型,當(dāng)然常用的主要是 String、Hash、List、Set、 SortSet 這 5 種類型

          除了提供的豐富的數(shù)據(jù)類型,Redis 還提供了像慢查詢分析、性能測試、Pipeline、事務(wù)、Lua自定義命令、Bitmaps、HyperLogLog、發(fā)布/訂閱、Geo 等個(gè)性化功能。


          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧洲亚洲在线观看 | 国产韩国精品 | 国产无码乱伦视频 | 国产热99 | 国产香蕉AV |