go redis mysql實現二級快取

2021-10-11 10:21:09 字數 1331 閱讀 6840

package main

import

(//匯入sdk包()

//格式化的輸入輸出包

"fmt"

//作業系統包

"os"

//匯入mysql資料庫驅動,只需要執行其包的初始化方法,不需要使用其api

//匯入第三方包,儲存路徑在gopath下

)/*定義結構體,用於接收資料庫的資料*/

type person struct

/*錯誤處理函式

引數:傳入錯誤、出錯的場景

只要有錯誤,就列印錯誤並暴力退出程式

*/func

handleerror

(err error

, when string)}

/*程式入口*/

func

main()

}gameover:

//列印並換行

fmt.

println

("game over")}

/*獲取並列印所有人員資訊*/

func

getallpeople()

else}/*

從mysql核心資料庫拿取人員資訊

返回值:

people person 預定義的person切片容器

*/func

getpeoplefrommysql()

(people [

]person)

/*從redis快取獲取獲取人員資訊

返回值:【很多的】人員資訊字串,使用【切片容器string】返回

*/func

getpeoplefromredis()

(strs [

]string

)/*快取查詢結果到redis*/

func

cachepeople2redis

(people [

]person)

//執行redis命令:expire people 20,使people在20秒後過期

_, err := conn.do(

"expire"

,"people",20

)handleerror

(err,

"@ expire people 60"

) fmt.

println

("快取people成功!"

)}

二叉堆實現二

堆可以視為一棵完全二叉樹,樹的每一層都是被填滿的,最後一層可能除外,所以堆可以用陣列來表示。對於陣列中任意位置 i上的元素,其左兒子在位置 i 2 1 其右兒子在位置 i 2 2 上,其父節點在位置 i 1 2 1處。二叉堆有兩種 最大堆和最小堆。最大堆中,除根結點外 其無父結點 每個結點的關鍵字都...

驅動安裝實現(二)

前一段時間一直在使用,installsheild 2009 製作安裝包。很可惜沒有成功!本以為 is2009 是乙個完全視覺化的安裝工具,結果發現網上的例子包括了很多機器碼,自己感覺很麻煩就放棄了。應該說 is2009 更加想乙個 mfc整合的程式設計環境。後來改用 inno 來製作安裝包,感覺 i...

C 實現反射(二)

新部落格鏈結 找了一些資料,參考了 c 反射 開源中國 這篇,做了一些修改和簡化,成為了 version3.思路其實並不複雜,可以進行反推 反射是根據類名動態生成類,如果我們有乙個全域性的對映關係,可以從類名得到類的相關資訊 classinfo,包括類的建構函式,那麼我們便能實現這一點。所以我們需要...