日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis学习笔记(五) 总结

發布時間:2023/12/10 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis学习笔记(五) 总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 為什么使用redis
    ? ? ? ? 改善性能。當大SQL執行耗時久,且結果不頻繁變動,就特別適合將運行結果放入緩存,后面的請求從緩存中讀取,使得請求能夠迅速響應
    ? ? ? ? 緩解并發壓力。大并發下,所有請求都是直接訪問數據庫的,會出現連接異常。redis做一個緩沖,讓請求先訪問redis,而不是數據庫。

  • redis缺點
    ? ? ? ? ?1、緩存與數據庫雙寫一致性問題
    ? ? ? ? ?2、緩存雪崩問題(緩存同一時間大面積失效,這時又來了一波請求,結果請求都懟到數據庫上,從而連接異常)
    ? ? ? ? ?3、緩存擊穿問題(黑客故意去請求緩存中不存在的數據,導致所有的請求都懟到數據庫上,從而連接異常)
    ? ? ? ? ?4、緩存的并發競爭問題

  • redis的過期策略與內存淘汰機制
      ? 思考:為什么redis只能存5G,而你寫了10G,redis怎么刪除的。為什么設置過期時間,時間到了,內存占用率還是那么高
    ? ? ? ? ?redis采用的是定期刪除+惰性刪除策略
    ? ? ? ? ?定期刪除不等于定時刪除,定期刪除是指redis默認100ms檢查是否有過期的key,有則刪除。但redis不是每個100ms將所有的key檢查一次,而是隨機抽取進行檢查,因此,只采用定期刪除策略,會導致很多key到時間沒有刪除。惰性刪除會在你獲取key時,redis檢查是否過期,如果過期,此時就會刪除。
    ? ? ? ? ? 但是如果一直沒有被刪除(定期刪除沒有刪,也沒有被訪問),則redis內存會越來越高,應該采用內存淘汰機制:

    ? ? ? ? ? 在redis.conf中有一行配置:# maxmemory-policy volatile-lru

    ? ? ? ? ? 該配置就是配內存淘汰策略的(什么,你沒配過?好好反省一下自己)

    ? ? ? ? ? 1)noeviction:當內存不足以容納新寫入數據時,新寫入操作會報錯。應該沒人用吧。

    ? ? ? ? ? 2)allkeys-lru:當內存不足以容納新寫入數據時,在鍵空間中,移除最近最少使用的key。推薦使用,目前項目在用這種。

    ? ? ? ? ? 3)allkeys-random:當內存不足以容納新寫入數據時,在鍵空間中,隨機移除某個key。應該也沒人用吧,你不刪最少使用Key,去隨機刪。

    ? ? ? ? ? 4)volatile-lru:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,移除最近最少使用的key。這種情況一般是把redis既當緩存,又做持久化存儲的時候才用。不推薦

    ? ? ? ? ? 5)volatile-random:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,隨機移除某個key。依然不推薦

    ? ? ? ? ? 6)volatile-ttl:當內存不足以容納新寫入數據時,在設置了過期時間的鍵空間中,有更早過期時間的key優先移除。不推薦

    ? ? ? ? ?
  • 解決緩存擊穿問題
    ? ? ? ?1、利用互斥鎖,緩存失效的時候,先獲得鎖,得到鎖了再請求數據庫,沒得到鎖,則休眠一段時間重試
    ? ? ? ?2、采用異步更新策略,無論key是否取到值,都直接返回。value值中維護一個緩存失效時間,緩存過期,則異步起一個線程去讀數據庫,更新緩存,需要做緩存預熱操作。
    ? ? ? ?3、提供一個迅速判斷請求是否有效的攔截機制

  • 解決雪崩問題
    ? ? ? ? 1、給換成的失效時間加上隨機值,避免集體失效
    ? ? ? ? 2、使用互斥鎖,但是該方案吞吐量明顯下降了
    ? ? ? ? 3、雙緩存

  • ? ? ? ? ??

轉載于:https://www.cnblogs.com/yaohuiqin/p/9412367.html

總結

以上是生活随笔為你收集整理的Redis学习笔记(五) 总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。