成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Go應該如何實現(xiàn)二級緩存

Go應該如何實現(xiàn)二級緩存

熱門標簽:揚州電銷外呼系統(tǒng)軟件 400手機電話免費辦理 武漢百應人工智能電銷機器人 電腦外呼系統(tǒng)輻射大嗎 上海企業(yè)外呼系統(tǒng)排名 智能語音電銷的機器人 開通400電話申請流程 如何利用高德地圖標注家 百度地圖標注位置網(wǎng)站

一、需求

  • 實現(xiàn)二級緩存
  • 程序運行起來后提示:“請輸入命令:”,如果輸入getall,查詢并顯示所有人員的信息
  • 第一次時查詢mysql并將結(jié)果緩存在redis,設(shè)置60秒的過期時間
  • 以后的每次查詢,如果redis有數(shù)據(jù)就從redis加載,沒有則重復上一步的操作

二、實現(xiàn)連接Mysql并執(zhí)行查詢語句

先實現(xiàn)需求二,當輸入命令getall時,查詢并顯示所有人員的信息。

package main
​
import (
    "fmt"
    _"github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)
​
type Human struct {
    Name string `db:"name"`
    Age int `db:"age"`
}
func main() {
    var cmd string
    for{
        fmt.Println("請輸入命令:")
        fmt.Scan(cmd)
​
        switch cmd{
        case "getall":
            //顯示所有人的信息
            GetAllPeople()
        case "exit":
            //退出程序
            goto GAMEOVER
        default:
            fmt.Println("輸入的命令有誤,請重新輸入!")
        }
    }
    GAMEOVER:
    fmt.Println("GAME OVER")
​
}
​
func GetAllPeople()  {
    fmt.Println("allPeople")
    //先嘗試拿緩存
    GetPeopleFromRedis()
    db, _ := sqlx.Connect("mysql", "root:123456@tcp(localhost:3306)/mydb")
    defer db.Close()
​
    var people []Human
    err := db.Select(people, "select name,age from person")
    if err!=nil{
        fmt.Println("查詢失敗!err=",err)
    }
    fmt.Println(people)
    
    CachePeople2Redis(people)
}

第一步還是導包,需要在mysql驅(qū)動包前面加上下劃線_,因為它只是一個驅(qū)動文件,并不需要在代碼中調(diào)用它的有關(guān)API接口.
接下來的這個結(jié)構(gòu)體中后面的db:"name" db:"age"一定要加反單引號,否則運行時會報錯。(傻傻的編者剛開始這里就出現(xiàn)問題啦~)

type Human struct {
    Name string `db:"name"`
    Age int `db:"age"`
}

然后main函數(shù)里面都是一些基本語法知識,用了switch和goto這兩個內(nèi)容。
接下來就是連接數(shù)據(jù)庫了,這里要用到數(shù)據(jù)庫擴展包Sqlx,Sqlx包其實最大最大的優(yōu)點是在查詢方面,也就是使用select時優(yōu)化得比較好。比原來的使用查詢方便了不止一點。

db, _ := sqlx.Connect("mysql", "root:123456@tcp(localhost:3306)/mydb")

driverName:mysql,表示驅(qū)動器的名稱是mysql也就上面"github.com/go-sql-driver/mysql"導入的驅(qū)動器。
dataSourceName是root:123456@tcp(localhost:3306)/mydb 它的含義是 賬戶名:密碼@tcp(ip:端口)/數(shù)據(jù)庫名稱。
將緩存查詢結(jié)果到Redis,就是通過這個函數(shù)CachePeople2Redis(people)。

三、寫一個錯誤處理函數(shù)

func HandleError(err error,why string)  {
    if err != nil{
        fmt.Println(err,why)
        os.Exit(1)
    }
}

因為后面需要處理很多錯誤,而錯誤處理也是GO的一個特性,所以我們這先寫一個錯誤處理函數(shù)。

四、設(shè)置二級緩存

func CachePeople2Redis(people []Human)  {
    conn, _ := redis.Dial("tcp", "localhost:6379")
    defer conn.Close()
    for _,human := range people{
        humanStr := fmt.Sprint(human)
        _, err := conn.Do("rpush", "people", humanStr)
        if err != nil{
            fmt.Println("緩存失敗(rpush people),err=",err)
            return
        }
    }
    _, err := conn.Do("expire", "people", 66)
    if err!=nil{
        HandleError(err,"@expire people 60")
    }
    fmt.Println("緩存成功!")
}

redis.Dial()這個函數(shù)是用來連接redis的,需要給定網(wǎng)絡(luò)協(xié)議和IP地址及端口號,redis的端口號默認為6379.
defer conn.Close()表示延時結(jié)束與redis的連接,為了節(jié)省系統(tǒng)的io資源,需要及時關(guān)閉連接!剛?cè)腴T時我們很容易忘記這個,需要我們養(yǎng)成習慣!
conn.Do()是用來執(zhí)行數(shù)據(jù)庫命令的,第一個參數(shù)是命令名,后面的參數(shù)是數(shù)據(jù)庫命令的參數(shù)。它返回的結(jié)果中reply是字節(jié)數(shù)組[]byte類型,需要根據(jù)具體的業(yè)務類型進行數(shù)據(jù)類型轉(zhuǎn)換。
這段代碼先將people數(shù)組中的每一個human放入到redis的people列表中。然后再執(zhí)行expire命令,將列表設(shè)置過期時間。
執(zhí)行成功!下面是運行結(jié)果:

請輸入命令:
getall
allPeople
[{大揚 21} {小飛 21} {大紅袍 1} {小芳 18}]
緩存成功!
請輸入命令:

然后去看看數(shù)據(jù)庫里面存進去沒有。

127.0.0.1:6379> lrange people 0 -1
1) "{\xe5\xa4\xa7\xe6\x89\xac 21}"
2) "{\xe5\xb0\x8f\xe9\xa3\x9e 21}"
3) "{\xe5\xa4\xa7\xe7\xba\xa2\xe8\xa2\x8d 1}"
4) "{\xe5\xb0\x8f\xe8\x8a\xb3 18}"

過了一分鐘之后,再查看redis數(shù)據(jù)庫內(nèi)的數(shù)據(jù)。

127.0.0.1:6379> lrange people 0 -1
(empty list or set)

已經(jīng)消失了。

再寫一個函數(shù):

func GetPeopleFromRedis() (peopleStrs []string) {
    //連數(shù)據(jù)庫 
    conn, _ := redis.Dial("tcp", "localhost:6379")
    //延遲關(guān)閉
    defer conn.Close()
    //執(zhí)行命令
    reply, err := conn.Do("lrange", "people", 0, -1)
    //處理錯誤
    HandleError(err,"@lrange people 0 -1")
    //類型轉(zhuǎn)換
    peopleStrs, err = redis.Strings(reply, err)
    //打印結(jié)果
    fmt.Println("緩存拿取結(jié)果:",peopleStrs,err)
    return
}

如果redis里面有就不需要從mysql里面取數(shù)據(jù)了。直接從redis里面利用lrange命令來獲取people的所有值。

到此這篇關(guān)于Go應該如何實現(xiàn)二級緩存的文章就介紹到這了,更多相關(guān)Go 二級緩存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django如何實現(xiàn)內(nèi)容緩存示例詳解
  • redis之django-redis的簡單緩存使用
  • django緩存配置的幾種方法詳解
  • 詳解Django框架中的視圖級緩存
  • 詳解Django緩存處理中Vary頭部的使用
  • Django中提供的6種緩存方式詳解
  • react+django清除瀏覽器緩存的幾種方法小結(jié)
  • golang實現(xiàn)LRU緩存淘汰算法的示例代碼
  • Django頁面數(shù)據(jù)的緩存與使用的具體方法

標簽:宜賓 新余 武漢 江西 張掖 延邊 黑龍江 嘉峪關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Go應該如何實現(xiàn)二級緩存》,本文關(guān)鍵詞  應該,如何,實現(xiàn),二級,緩存,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go應該如何實現(xiàn)二級緩存》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go應該如何實現(xiàn)二級緩存的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲第一视频在线播放| 少妇高潮一区二区三区| 自拍亚洲色图| 天天色棕合合合合合合合| 男人天堂影院| 国产在线观看av| 久久手机免费视频| 欧美一级淫片免费视频魅影视频| 男人天堂av电影| 国产高清日韩| 久久久精品免费网站| 日本片在线观看| 在线精品亚洲一区二区| 国产精品女主播在线观看| 狠狠久久婷婷| 综合激情五月婷婷| 久久国产精品视频| 亚洲码在线观看| 久草福利资源在线视频| 久久精品一级爱片| 一二三四视频在线社区中文字幕2| 亚洲成av人片一区二区三区| 日本在线视频一区| 久久99精品久久久久久噜噜| 欧美大片欧美激情性色a∨久久| 亚洲色精品三区二区一区| 精品日韩欧美一区二区| 亚洲午夜激情网站| 97色伦亚洲国产| 日韩久久99| av日韩在线播放| 亚洲欧美日韩中文播放| ww久久中文字幕| 欧美日韩在线视频免费观看| 蜜臀91精品国产高清在线观看| 国产精品视频白浆合集| 国产欧美久久久久久久久| 日韩av在线天堂网| 久久久久国产精品麻豆ai换脸| 在线视频观看91| 免费av在线电影| 亚洲熟妇无码av| 国产成人精品无码播放| 琪琪五月天综合婷婷| 日韩欧美一区在线观看| 69成人在线| 手机av在线网站| 久久亚洲影音av资源网| 亚洲永久精品大片| 欧美三级韩国三级日本一级| 美女露胸视频在线观看| 777久久精品一区二区三区无码| 九色91在线视频| 五月婷婷综合在线| 狠狠操天天操夜夜操| 精品在线视频一区二区| 成人精品视频一区二区三区| www.狠狠插| 亚洲japanese制服美女| 欧美高清视频一区二区三区在线观看| 欧美不卡视频一区| 亚洲成熟女性毛茸茸| 国产视频久久久久久| 欧美三级视频在线播放| 亚洲一级毛片| www免费视频观看在线| 中文字幕第四页| 色狠狠久久aa北条麻妃| 国产激情视频一区| 国产原创中文在线观看| 黄色动漫在线免费观看| 国产午夜精品福利视频| www.久色| jjzz在线观看| 精品欧美一区二区三区| 欧美日本中文字幕| 99re这里只有精品6| 国产精品人人爽人人做我的可爱| 色悠悠国产精品| 深爱激情综合网| 欧美午夜a级限制福利片| 亚洲成人电视网| 欧美交a欧美精品喷水| 欧美连裤袜在线视频| 国产一二三区精品| 亚洲视频在线观看一区二区三区| 国产极品在线观看| 高清视频一区| 亚洲美女精品一区| 91精彩刺激对白露脸偷拍| www.偷拍.com| 国产在线xxxx| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 久久99热只有频精品91密拍| 国产成人精品一区二区色戒| 风间由美一区| 午夜伦理福利在线| 欧美成人精品在线| 免费电影一区| 亚洲图片在线观看| 国产主播精品在线| 欧美精品第一页在线播放| 涩涩涩在线视频| 少妇喷水在线观看| 精品无人区无码乱码毛片国产| 特黄特色免费视频| 欧美国产在线看| xxxx国产视频| 午夜av区久久| 91在线免费视频观看| 亚洲精品成人a| 久久婷婷五月综合色国产香蕉| 欧美精品18videos性欧美| 国产精品对白一区二区三区| 深夜精品寂寞黄网站在线观看| 日韩精品资源二区在线| 97人人干人人| 日韩国产福利| 视频一区二区三区国产| 亚洲毛茸茸少妇高潮呻吟| 1区2区3区在线观看| 99国产超薄肉色丝袜交足的后果| 免费福利片在线观看| 中文字幕一区二区三区四| 黄色毛片av| 性欧美freesex顶级少妇| 欧美成人vps| 欧美三级日韩三级国产三级| 久久久水蜜桃av免费网站| 亚洲欧美精品aaaaaa片| 亚洲国产成人影院播放| 亚洲第一区在线观看| 制服丝袜影音| 毛片在线播放视频| 欧美撒尿777hd撒尿| 欧美午夜性视频| 在线观看免费黄网站| 成年人视频软件| 日韩综合第一页| 欧美熟妇一区二区| 成人精品第一区二区三区| 免费一级片91| 伊人精品成人久久综合软件| 可以直接看的黄色网址| 国产区在线看| 在线一区二区三区做爰视频网站| 久久无码精品丰满人妻| 国产伦精品一区二区三区视频金莲| 国产日产高清欧美一区二区三区| 可以看av的网站久久看| 在线看的片片片免费| 欧美大学生性色视频| 狼人精品一区二区三区在线| 精品噜噜噜噜久久久久久久久试看| 你懂的网站在线播放| 中文字幕av一区二区三区高| 国产激情视频一区二区三区| 色视频免费在线| 一个色综合导航| 小说区图片区色综合区| 人妻91麻豆一区二区三区| 国产美女主播在线播放| 欧美日本一道本在线视频| 麻豆成人av在线| 欧美三级欧美一级| 欧美色婷婷久久99精品红桃| 男人天堂影院| 日韩大片免费观看| 九九热视频免费在线观看| 情se视频网在线观看| 亚洲午夜一区二区三区| 国产亚洲欧美日韩精品一区二区三区| 国产99久久九九精品无码免费| 老司机午夜精品视频| 国产网站在线看| 奇米亚洲午夜久久精品| 尤物在线精品视频| 国产自产v一区二区三区c| 日产国产精品精品a∨| 成人免费视频一区二区| 欧美黑人巨大xxx极品| 日本中文字幕电影| 尤物tv国产一区| 日韩最新中文字幕电影免费看| 日韩不卡在线观看日韩不卡视频| 鲁丝一区二区三区| 亚洲精品无码久久久| 亚洲成人aaa| 国产黄a三级三级| 97久久超碰精品国产| 少妇激情av一区二区| 亚洲 欧美 日韩在线| 中文字幕无码精品亚洲35| 91av成人在线| 国产叼嘿网站免费观看不用充会员| 麻豆精品视频在线观看视频| 操人在线观看| 国产ts变态重口人妖hd| 欧美成人精品一区二区综合免费| 日本乱码高清不卡字幕| 特级西西444www| 中文字幕日韩一区二区三区不卡| 亚洲一区二区高清| 久久久久久久网站| 91九色丨porny丨极品女神| 日韩理论电影中文字幕| 蜜桃久久精品一区二区| 国产日韩欧美影视| 动漫精品视频| 日本大胆人体视频| 久久99精品国产.久久久久久| 日日夜夜人人| 野战少妇38p| 最新欧美日韩亚洲| 欧美性一级生活| 六九午夜精品视频| 日韩精品在线电影| 免费黄色国产视频| 一区二区三区在线播| 亚洲图片在线综合| 国产美女亚洲精品7777| 大黄网站在线观看| 日本a√在线观看| 久久99国产精品久久99果冻传媒| 91影院在线观看| www.久久久久久| 欧美一区二区三区综合| 精品久久久久久久中文字幕| 国产理论在线| 亚洲国产高清在线观看视频| 免费在线观看成年人视频| 99精品电影| 久久精品影视| 国产成人a亚洲精v品无码| 欧美成人一区二免费视频软件| 免费人成自慰网站| 亚洲国产免费看| 波多野结衣一区二区| 最好看的2019年中文视频| 欧美日韩在线一区二区三区| 国产一区精品在线| 波多野结衣av一区二区全免费观看| 国内老熟妇对白hdxxxx| 97视频com| 波多野结衣啪啪| 欧美6699在线视频免费| 国产精品久久久久7777| а√天堂8资源中文在线| 国产福利一区视频| 日本一级理论片在线大全| 国产精品538一区二区在线| 精品欧美乱码久久久久久1区2区| 国产成人精品av久久| 国外成人在线视频| 中文字幕 日韩 欧美| 国产精品视频xxxx| 国产精品入口麻豆高清| 久久久久久久久蜜桃| 你懂得在线视频| 国产成人精品一区二区无码呦| 成 人 黄 色 小说网站 s色| 欧美xxxx做受欧美.88| 视频一区 中文字幕| 国产一区二区三区四区五区加勒比| 久久久久久免费| 日韩欧美电影一二三| 亚洲手机视频| 日韩av在线中文| 久久一日本道色综合| 日韩亚洲一区二区| 日本高清久久一区二区三区| 国产卡一卡二卡三| 亚洲欧美一区二区视频| 亚洲卡一卡二卡三| 精国产品一区二区三区a片| 麻豆一区区三区四区产品精品蜜桃| 在线观看av网站| 久久精品99久久久香蕉| 国产精品久久久久久久久图文区| 成人羞羞国产免费图片| 一本一本久久a久久精品牛牛影视| 影音先锋男人资源站| 亚洲av人无码激艳猛片服务器| 精品偷拍各种wc美女嘘嘘| 国产精品igao激情视频| 91ph在线| xxxx在线免费观看| 日精品一区二区| 波多野结衣绝顶大高潮| 欧美日一区二区三区在线观看国产免| 国产精品亚洲综合天堂夜夜| 久久精品日产第一区二区三区高清版| www.色日本| 欧美激情一区二区三区在线| 色乱码一区二区三区熟女| 91精品久久久久久久久久入口| 我想看黄色大片| 嫩草影院2018| 在线视频网站| 糖心vlog在线免费观看| 亚洲欧美国产精品久久久久久久| 草草视频在线| 在线免费一区二区| 伊人精品一区二区三区| 成人在线免费电影| 国产精品久久久久永久免费看| 菠萝蜜视频网站入口| 116美女写真午夜一级久久| 亚洲综合20p| 国产乱子视频| 久久亚洲精品视频| 国产天堂第一区| 欧美日韩喷水| 亚洲国产中文字幕久久网| 国产日韩视频在线播放| 亚洲午夜高清视频| 92看片淫黄大片欧美看国产片| 久久这里精品| 重囗味另类老妇506070| 国产精品国码视频| 成人h在线播放| 亚洲字幕久久| av网站大全免费| 一级黄色片国产| 亚洲xxxx3d动漫| 制服.丝袜.亚洲.中文.综合懂色| 看全色黄大色黄女片18| 国产乡下妇女做爰视频|