go gomemcache包原始碼分析

2021-09-19 18:34:48 字數 3126 閱讀 7115

因為beego中的cache模組中的子模組memcached引用了這個包,所以也對這包的原始碼進行分析了下。花了一定的時間編寫整理這篇部落格,這個包一共兩個檔案,原始碼檔案。

關於memcache學習,可以到這邊教程學習

1)func new(server ...string) *client

用法:mc := memcache.new("127.0.0.1:11211")

作用:mc := memcache.new("127.0.0.1:11211")

用法:mc := memcache.new("127.0.0.1:11211")

用法:mc := memcache.new("127.0.0.1:11211")

用法:mc := memcache.new("127.0.0.1:11211")

用法:mc := memcache.new("127.0.0.1:11211")

newval, err := mc.increment("test", 2)

fmt.println(newval, err)

作用:將原來鍵的值加上指定數,可分為以下兩種情況:

1、如果原來的是乙個數字,則加上指定數,返回修改後的值和nil

2、如果原來的不是乙個數,則返回0和報錯資訊

用法:mc := memcache.new("127.0.0.1:11211")

用法:mc := memcache.new("127.0.0.1:11211")

mc.compareandswap(&memcache.item)9)func (c *client) flushall() error

用法:mc := memcache.new("127.0.0.1:11211")

err := mc.flushall()

用於清理快取中的所有 key=>value(鍵=>值) 對

用法:mc := memcache.new("127.0.0.1:11211")

err := mc.replace()

傳送replace命令到mecmached伺服器,該命令用於替換已存在的

key(鍵)的value(資料值)。

如果 key 不存在,則替換失敗,並且您將獲得響應 not_stored。

用法:mc := memcache.new("127.0.0.1:11211")

err := mc.touch("data", 120)

傳送touch命令到mecmached伺服器,如果key不存在,則會返回錯誤,

如果key存在,則會在設定的時間後自動刪除。

用法:mc := memcache.new("127.0.0.1:11211")

err := mc.delete("test")

將原有key對應的內容刪除

13)func (c *client) deleteall() error

用法:mc := memcache.new("127.0.0.1:11211")

err := mc.deleteall()

將內容刪除

(和delete共用一套實現**)

AbstractCollection原始碼分析

abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...

ThreadPoolExecutor原始碼閱讀

執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...

OrangePi One Android 原始碼編譯

一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...