在实际项目中,我们除了用到关系型数据库 ,其次用的最多就是非关系数据库, 一般都是作为缓存使用, 其主要目的是缓解数据库压力,其次,从缓存中拿数据是非常快的,这里我们主要介绍用的最多的 redis, 那go 是如何操作redis呢?
一.连接数据库
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
//操作redis
func main(){
conn, err := redis.Dial("tcp", "ip:6379",
redis.DialDatabase(1),
redis.DialPassword("密码"))
if err != nil {
fmt.Println("Connect to redis error", err)
return
}
fmt.Println("初始化redis数据库success")
defer conn.Close()
}
查看控制台:
二:做增删改查的操作
1.插入
_, err = conn.Do("SET", "csq", "redis插入")
if err != nil {
fmt.Println("插入失败", err)
}
看到插入成功了.(这个是不会过期的)
设置过期时间,然后在根据ke获取值,看是否能获取的到
_, err = conn.Do("SET", "csq", "redis插入", "EX", "5")
if err != nil {
fmt.Println("redis 插入失败", err)
}
2.查询
v, _ := redis.String(conn.Do("GET", "csq"))
fmt.Println("get value: ", v)
v1, _ := redis.String(conn.Do("GET", "csq01"))
fmt.Println("get value: ", v1)
获取到的值为空,证明key(csq) 已经过期了
3.删除key
_, err = conn.Do("SET", "csq01", "redis插入01")
if err != nil {
fmt.Println("插入失败", err)
}
_, err = conn.Do("DEL", "csq01")
if err != nil {
fmt.Println("redis delelte value failed >>>", err)
return
}
//在查询
v, err := redis.String(conn.Do("GET", "csq01"))
if err != nil {
fmt.Println("redis get value failed >>>", err)
}
fmt.Println("get value:", v)
根据控制台输出,知道删除成功.