go基础之操作redis数据库
发布时间:2021-04-25 编辑:jiaochengji.com
教程集为您提供go基础之操作redis数据库等资源,欢迎您收藏本站,我们将为您提供最新的go基础之操作redis数据库资源
文章目录
- 准备阶段
- 引入第三方库
- 实战demo
准备阶段
关于redis的操作不多赘述,详见菜鸟教程redis文档
引入第三方库
这里要引入第三方库redisgo
,go get github.com/garyburd/redigo/redis
//上面的github仓库已迁移,使用
go get github.com/gomodule/redigo/redis
实战demo
下面开始一些实际的操作
package main
import (
"encoding/json"
"fmt"
_ "github.com/gomodule/redigo/redis"
"github.com/redigo/redis"
"log"
)
/**
go操作redis数据库 https://github.com/gomodule/redigo
*/
type user struct{
username string
password string
}
func main(){
//连接数据库
c,err := redis.Dial("tcp","127.0.0.1:6379")
checkErr(err)
//readAndWrite(c)
//writeByConfigExpireTime(c)
//Expirekey(c)
//writeStructObject(c)
//isExistKey(c)
//writeJsonObject(c)
//readJsonObject(c)
defer c.Close()
}
//读写操作 string
func readAndWrite(c redis.Conn){
_, err := c.Do("SET", "cary", "zxh")
checkErr(err)
username,err:=redis.String(c.Do("GET","james"))
if err!=nil {
log.Fatalln(err)
}else{
fmt.Println(username)
}
}
//写操作并且设置过期时间
func writeByConfigExpireTime(c redis.Conn){
_,err:=c.Do("set","xx","xx")
checkErr(err)
//设置过期时间为10s,10s后键值对过期
_, err = c.Do("expire", "xx", 10)
checkErr(err)
username,err:=redis.String(c.Do("GET","xx"))
if err!=nil {
log.Fatalln(err)
}else{
fmt.Println(username)
}
}
//写入一个结构体类型
func writeStructObject(c redis.Conn){
person := user{
username:"carl",
password: "123",
}
_,err:=c.Do("set",person.username,person.password)
checkErr(err)
}
//检测key是否存在
func isExistKey(c redis.Conn){
flag,err:=redis.Bool(c.Do("exists","james"))
if err!=nil {
log.Fatalln(err)
}else{
fmt.Println("exist or not..",flag)
}
}
//写入json格式的数据
func writeJsonObject(c redis.Conn){
key:="user_table"
user:=map[string]string{
"username":"kk",
"password":"12",
}
//序列化
value,_:=json.Marshal(user)
// setnx 该操作不能被覆盖
res,err:=c.Do("SETNX",key,value)
checkErr(err)
if res == int64(1){
fmt.Println("success")
}
}
//取出json格式的数据
func readJsonObject(c redis.Conn){
key:="user_table"
user:=map[string]string{}
value,err:=redis.Bytes(c.Do("get",key))
if err != nil {
fmt.Println(err)
}
//解序列化
err = json.Unmarshal(value, &user)
if err!=nil {
log.Fatalln(err)
}else{
fmt.Println(user)
}
}
//淘汰缓存
func Expirekey(c redis.Conn){
_,err:=c.Do("del","james")
checkErr(err)
}
//捕获异常
func checkErr(err error){
if err!= nil {
log.Fatalln(err)
}
}
到此这篇关于“go基础之操作redis数据库”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!
您可能感兴趣的文章:
REDIS基础, GO语言
PHP Redis相关操作大全
超全的!Redis的安装和基础操作
PHP操作Redis数据库常用方法(总结)
PHP操作Redis数据库常用方法
redis基础问答
三分钟读懂redis数据库
Laravel 5.1框架Redis 的安装配置及基本使用教程
php-redis中文文档之五
PHP操作Redis的基本方法
[关闭]