golang操作redis主要有两个库,go-redis和redigo。两者操作都比较简单,区别上redigo更像一个client执行各种操作都是通过Do函数去做的,redis-go对函数的封装更好,相比之下redigo操作redis显得有些繁琐。但是官方更推荐redigo,所以项目中我使用了redigo。
1.连接redis
package redisclient import ( "fmt" redigo "github.com/garyburd/redigo/redis" ) var pool *redigo.Pool func 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 main import ( "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") } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年06月01日
2024年06月01日
- PUCK《天蓝色的彼岸》[FLAC/分轨][74.02MB]
- Edward Chan《Blueprint of Memories》[320K/MP3][48.3MB]
- 张敬轩.2007-MY1STCOLLECTION【环球】2CD【WAV+CUE】
- 著名歌手绝美音色经典老歌《超级音效王》DTS-WAV
- 流行靓声-群星《情网HQ》DTS[WAV]
- 群星《经典情歌对唱迟来的爱HQ》DTS[WAV]
- 群星2024《传承(太平洋影音四十五周年纪念专辑)4CD》[FLAC]
- 太平洋唱片中国轻音乐1-10全集[竹锦+影视篇+民歌篇+创作篇等]10CD[APE分轨+CUE]
- 群星《2024第一季度百度排行100首》[FLAC/分轨][2.3G]
- 证声音乐图书馆《聆听·心流·爵士 Flow Jazz》[320K/MP3][77.28MB]
- 证声音乐图书馆《聆听·心流·爵士 Flow Jazz》[FLAC/分轨][132.74MB]
- dnf手游为什么不上线了
- dnf手游韩服怎么重新转职
- 雷婷《婷婷醉歌》发烧版K2HD[正版CD低速原抓WAV+CUE]
- 西卿.1997-西北风(布袋戏精选)【金瓜石】【WAV+CUE】