欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)LRU熱點(diǎn)緩存及原理

 更新時(shí)間:2019年10月29日 09:19:51   作者:dpj999  
LRU算法根據(jù)數(shù)據(jù)的歷史訪問記錄來進(jìn)行淘汰數(shù)據(jù),其核心思想是“如果數(shù)據(jù)最近被訪問過,那么將來被訪問的幾率也更高”。 。這篇文章主要介紹了python實(shí)現(xiàn)LRU熱點(diǎn)緩存,需要的朋友可以參考下

LRU

LRU(Least recently used,最近最少使用)算法根據(jù)數(shù)據(jù)的歷史訪問記錄來進(jìn)行淘汰數(shù)據(jù),其核心思想是“如果數(shù)據(jù)最近被訪問過,那么將來被訪問的幾率也更高”。

基于列表+Hash的LRU算法實(shí)現(xiàn)。

  • 訪問某個(gè)熱點(diǎn)時(shí),先將其從原來的位置刪除,再將其插入列表的表頭
  • 為使讀取及刪除操作的時(shí)間復(fù)雜度為O(1),使用hash存儲熱點(diǎn)的信息的鍵值
class LRUCaceh():
   def __init__(self, size=5):
     '''
     默認(rèn)隊(duì)列的長度為5
     使用列表來維護(hù),使用字典來查詢
     '''
     self.size = size
     self.cache = dict()
     self.key = []
 ​
   def get(self, key):
     '''
     獲取緩存中的key的值
     '''
     if self.cache.get(key):
       self.key.remove(key)
       self.key.insert(0, key)
       return self.cache[key]
     return None
 ​
   def set(self, key, value):
     '''
     設(shè)置緩存,實(shí)現(xiàn)緩存淘汰
     '''
     if self.cache.get(key):
       self.cache.pop(key)
       self.cache[key] = value
       self.key.remove(key)
       self.key.insert(0, key)
     elif len(self.key) == self.size:
       old_key = self.key.pop()
       self.key.insert(0, key)
       self.cache.pop(old_key)
       self.cache[key] = value
     else:
       self.key.insert(0, key)
       self.cache[key] = value

總結(jié)

以上所述是小編給大家介紹的python實(shí)現(xiàn)LRU熱點(diǎn)緩存及原理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python使用RSA庫加密和解密

    Python使用RSA庫加密和解密

    這篇文章介紹了Python使用RSA庫加密和解密的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • windows下python安裝pip圖文教程

    windows下python安裝pip圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下python安裝pip圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python實(shí)現(xiàn)模擬器爬取抖音評論數(shù)據(jù)的示例代碼

    python實(shí)現(xiàn)模擬器爬取抖音評論數(shù)據(jù)的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)模擬器爬取抖音評論數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 在Python中操作字典之update()方法的使用

    在Python中操作字典之update()方法的使用

    這篇文章主要介紹了在Python中操作字典之update()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python二分法搜索算法實(shí)例分析

    Python二分法搜索算法實(shí)例分析

    這篇文章主要介紹了Python二分法搜索算法,實(shí)例分析了Python實(shí)現(xiàn)二分法的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • pyqt5?子線程如何操作主線程GUI(示例代碼)

    pyqt5?子線程如何操作主線程GUI(示例代碼)

    這篇文章主要介紹了pyqt5?子線程如何操作主線程GUI,在使用pyqt5編寫gui時(shí)遇到兩個(gè)問題,會導(dǎo)致界面崩潰,今天就圍繞這兩個(gè)問題來簡單說明和改進(jìn),需要的朋友可以參考下
    2024-05-05
  • python讀取二進(jìn)制mnist實(shí)例詳解

    python讀取二進(jìn)制mnist實(shí)例詳解

    這篇文章主要介紹了python讀取二進(jìn)制mnist實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • python+opencv輪廓檢測代碼解析

    python+opencv輪廓檢測代碼解析

    這篇文章主要介紹了python+opencv輪廓檢測代碼解析,本文實(shí)例實(shí)現(xiàn)對圖片的簡單處理,比如圖片的讀取,灰度顯示等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 用 Python 制作地球儀的方法

    用 Python 制作地球儀的方法

    這篇文章主要介紹了如何用 Python 制作地球儀,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考即將價(jià)值,需要的朋友可以參考下
    2020-04-04
  • cProfile Python性能分析工具使用詳解

    cProfile Python性能分析工具使用詳解

    這篇文章主要介紹了cProfile Python性能分析工具使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評論