python的乙個快取包cacheout

2021-10-05 23:41:42 字數 1092 閱讀 7197

今天遇到乙個問題,其實我可以把獲取的資料全部放到 redis裡面並且效能更好,但是redis裡面有類似的資料,本來key的形式就有點複雜,我就不想設計了,想到python有乙個類似go語言的包,能把後端伺服器自身的記憶體作為快取,然後找到了這個包叫:cacheout,實現資料快取。

首先說一下,這個包只能用在python3裡面

然後安裝:pip install cacheout就行

my_cache有以下函式:

點進去看原始碼拿到這個工具的所有函式:

key:獲取所有鍵

values:獲取所有值

iteams :獲取所有物件

clear:清空資料

has:檢查乙個key是不是存在,並且是否過期。如果不存在或者已經過期返回false

size: 返回資料總量

full: 返回快取是否滿了

get(self, key, default=none)

get_many(self, iteratee, default=none)

add(self, key, value, ttl=none)

add_many(self, items, ttl=none)

set(self, key, value, ttl=none)

set_many(self, items, ttl=none)

delete(self, key)

delete_many(self, iteratee)

delete_expired(self):刪除已過期的資料,返回刪除的個數

expired(self, key, expires_on=none):返回是否過期

expire_times(self):返回快取中資料的ttl時間

evict(self):已被收回的快取資料

popitem(self):和python裡面的pop一樣

memoize(self, *, ttl=none, typed=false):快取乙個函式,當然包括其引數,當再次呼叫該函式並且傳入相同的引數時,直接呼叫快取資料。

差不多就這些個函式。能滿足少量資料的一些要求吧。再說一次,東西就是玩玩,實際開發還是用redis。

閉包的乙個坑

閉包的乙個坑 for var i 0 i 5 i 5 上面這個 塊會列印五個5出來,而我們預想的結果是列印 1 2 3 4 5。之所以會這樣,是因為 settimeout 中的 i 是對外層 i 的引用。當 settimeout 的 被解釋的時候,執行時只是記錄了 i 的引用,而不是值。而當 set...

python定義乙個 Python定義乙個類

在物件導向的世界裡,你的 通常稱為 類的方法 method,而資料通常稱為 類的屬性 attribute,例項化的資料物件通常稱為 例項 instance。python使用class建立類。每個定義的類都有乙個特殊的方法,名為 init 可以通過這個方法控制如何初始化物件。類中方法的定義與函式的定義...

關於php 快取的乙個問題

原來是php.ini中開啟了 opcahce 1 下面是禁用 opcache 的方式。通過phpinfo來檢視php.ini檔案的路徑。在phpinfo頁面中通過檢視 loaded configuration file來獲取php.ini檔案的路徑。在php.ini檔案中禁用。找到 opcache....