go操作redis
发布日期:2021-11-18 19:17:18
浏览次数:12
分类:技术文章
本文共 1975 字,大约阅读时间需要 6 分钟。
这里我使用的是目前最高star 6k
获取redigo
go get
不废话直接上代码
host := "127.0.0.1:6379" //redis server db := "0" //redis索引 这里的’0‘可以使任何类型(string,int,int32,int64,uint8...) rs, err := redis.Dial("tcp", host) //首先获取连接 defer rs.Close() if err != nil { fmt.Printf("redis connect error:%s\n", err) return } fmt.Printf("redis connect success: %s\n", host)
// 选择db rs.Do("SELECT", db) key := "aaa" value := "bbb" n, err := rs.Do("SETNX", key, value) if err != nil { fmt.Println(err) return } // 注意这里返回的0或1是int64类型,注意先转换类型再比较 if n == int64(1) { // 设置过期时间为24小时 n, _ := rs.Do("EXPIRE", key, 24*3600) if n == int64(1) { fmt.Println("success") } } else if n == int64(0) { fmt.Println("the key has already existed") } // 由于redis数据在go中是以[]byte类型存储的,所以我们需要调用redis.String方法将其转换 value, _ = redis.String(rs.Do("GET", key) if err != nil { fmt.Println("fail") } fmt.Println(value)}
存储json类型数据
将我们之前的key value值稍作修改
key := "key" //存储前需将其序列化 value, _ := json.Marshal(map[string]string{ "foo": " bar"})
获取
value2, _ := redis.String(rs.Do("GET", key))
完整代码
package mainimport ( "encoding/json" "fmt" "github.com/garyburd/redigo/redis")func main() { host := "127.0.0.1:6379" db := "0" rs, err := redis.Dial("tcp", host) defer rs.Close() if err != nil { fmt.Printf("redis connect error:%s \n", err) return } fmt.Printf("redis connect success: %s\n", host) // 选择db rs.Do("SELECT", db) key := "key" value, _ := json.Marshal(map[string]string{ "foo": " bar"}) n, err := rs.Do("SETNX", key, value) if err != nil { fmt.Println(err) return } // 返回的n的类型是int64的,所以得将1或0转换成为int64类型的再比较 if n == int64(1) { // 设置过期时间为24小时 n, _ := rs.Do("EXPIRE", key, 24*3600) if n == int64(1) { fmt.Println("success") } } else if n == int64(0) { fmt.Println("the key has already existed") } // 由于之前存的value是string类型,所以用redis.String将数据转换成string类型 value2, _ := redis.String(rs.Do("GET", key)) json.Unmarshal() if err != nil { fmt.Println("fail") } fmt.Println(value2)}
转载地址:https://blog.csdn.net/weixin_39172380/article/details/91436387 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年03月27日 17时10分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
FTP文件管理项目(本地云)项目日报(二)
2021-06-30
FTP文件管理项目(本地云)项目日报(三)
2021-06-30
FTP文件管理项目(本地云)项目日报(四)
2021-06-30
【C++】勉强能看的线程池详解
2021-06-30
FTP文件管理项目(本地云)项目日报(五)
2021-06-30
FTP文件管理项目(本地云)项目日报(关于不定长包的测试)
2021-06-30
FTP文件管理项目(本地云)项目日报(六)
2021-06-30
FTP文件管理项目(本地云)项目日报(七)
2021-06-30
FTP文件管理项目(本地云)项目日报(八)
2021-06-30
【Linux】血泪教训 -- 动态链接库配置方法
2021-06-30
FTP文件管理项目(本地云)项目日报(九)
2021-06-30
以练代学设计模式 -- FTP文件管理项目
2021-06-30
FTP文件管理项目(本地云)项目日报(十)
2021-06-30
学以致用设计模式 之 “组合模式”
2021-06-30
我用过的设计模式(7)--享元模式
2021-06-30
MySQL数据库从入门到实战应用(学习笔记一)
2021-06-30
MySQL数据库从入门到实战应用(学习笔记二)
2021-06-30
种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
2021-06-30
【C++】攻克哈希表(unordered_map)
2021-06-30
转:【答学员问】- 该如何根据岗位学习相关技能
2021-06-30