教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go基础之操作redis数据库

go基础之操作redis数据库

发布时间:2021-04-25   编辑:jiaochengji.com
教程集为您提供go基础之操作redis数据库等资源,欢迎您收藏本站,我们将为您提供最新的go基础之操作redis数据库资源

文章目录

  • 准备阶段
  • 引入第三方库
  • 实战demo

准备阶段

关于redis的操作不多赘述,详见菜鸟教程redis文档

引入第三方库

这里要引入第三方库redisgogo 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的基本方法

[关闭]
~ ~