国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

go實現redigo的簡單操作

2020-04-01 18:55:51
字體:
來源:轉載
供稿:網友

golang操作redis主要有兩個庫,go-redis和redigo。兩者操作都比較簡單,區別上redigo更像一個client執行各種操作都是通過Do函數去做的,redis-go對函數的封裝更好,相比之下redigo操作redis顯得有些繁瑣。但是官方更推薦redigo,所以項目中我使用了redigo。

1.連接redis

package redisclientimport (  "fmt"  redigo "github.com/garyburd/redigo/redis")var pool *redigo.Poolfunc init() {  redis_host := "127.0.0.1"  redis_port := 6379  pool_size := 20  pool = redigo.NewPool(func() (redigo.Conn, error) {    c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redis_host, redis_port))    if err != nil {      return nil, err    }    return c, nil  }, pool_size)}func Get() redigo.Conn {  return pool.Get()}

之后我們調用redisclient包中的.Get()就可以生成一個redis連接池對象來操作redis

2.操作redis

package mainimport (  "redisclient"  "logger"  "github.com/garyburd/redigo/redis")func main() {  c := redisclient.Get()  //記得銷毀本次鏈連接  defer c.Close()  //寫入數據  _, err := c.Do("SET", "go_key", "redigo")  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while setting")  }  //判斷key是否存在  is_key_exit, err := redis.Bool(c.Do("EXISTS", "go_key"))  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while existing")  }  //獲取value并轉成字符串  account_balance, err := redis.String(c.Do("GET", "go_key"))  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while getting")  }  //刪除key  _, err = c.Do("DEL", "go_key")  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while deleting")  }  //設置key過期時間  _, err = c.Do("SET", "mykey", "superWang", "EX", "5")  if err != nil {    fmt.Println("redis set failed:", err)  }  //創建key時設置5s過期  _, err := c.Do("SET", "go_key:ex", "redigo", "EX", 5)  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while setting")  }  //對已有key設置5s過期時間  n, err := rs.Do("EXPIRE", "go_key", 5)  if err != nil {    logger.Runtime().Info(map[string]interface{}{"error": err}, "error while setting")  } else if n != int64(1) {    fmt.Println("failed")  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武鸣县| 酒泉市| 永州市| 林芝县| 巧家县| 仙游县| 晋江市| 大洼县| 廉江市| 涿鹿县| 张掖市| 泗阳县| 锦州市| 航空| 贡山| 荆门市| 青川县| 汨罗市| 桂东县| 陆川县| 香港 | 郓城县| 新余市| 剑阁县| 临沂市| 汝南县| 丰镇市| 高陵县| 兴海县| 博乐市| 峡江县| 屏东县| 工布江达县| 维西| 柞水县| 安丘市| 鄢陵县| 比如县| 宁陕县| 清水河县| 丰都县|