golang操作redis

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了golang操作redis脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1. redis简单介绍

redis支持数据的持久化,将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用
redis不仅仅支持key-value数据,还支持:string,list,set,hash等
redis支持数据备份,即master-slaver模式的数据备份

读11w/s,写8W/s,单机能达到15W qps,性能极高,非常适合做缓存
redis的所有操作都是原子性的,单个操作是原子性的,多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来

redis与其它key-value的不同?
1. 有着更为复杂的数据结构并提供对它们的原子性操作
2. redis的数据类型都是基于基础的数据结构的同时对程序员透明,无须进行额外的抽象

redis运行在内存中但是可以持久化到磁盘,所在在对不同数据集进行告诉读写时需要权衡内存,
因为数据量不能大于硬件内存,内存数据库的另一个优点是:相比在磁盘上相同复杂的数据结构,
在内存中操作起来非常简单,这样redis可以做很多内部复杂性很强的事情,
同时,在磁盘方面,它们是以紧凑的追加的方式产生的,因为它们并不需要随机访问

  

2. 连接redis,新建包封装redis客户端结构体

package redisCimport (   "fmt"   "github.com/gomodule/redigo/redis")type redisC struct {   Conn redis.Conn}func InitRedis(serverHost, pwd string, dbIndex int) *redisC {   // 注意:响应参数也是函数内的局部变量   setDb := redis.DialDatabase(dbIndex)   setPassword := redis.DialPassword(pwd)   conn, err := redis.Dial("tcp", serverHost, setDb, setPassword)   if err != nil {      fmt.Println("conn redis error", err)      return nil   }   return &redisC{Conn: conn}}func (r *redisC) SetValue(key, value string) error {   _, err := r.Conn.Do("set", key, value)   return err}func (r *redisC) GetValue(key string) string {   v, err := redis.String(r.Conn.Do("get", key))   if err != nil {      fmt.Printf("未找到key【%s】n", key)      return ""   }   return v}

主程序: string类型 get set操作,调用封装好的两个结构体指针方法

package mainimport (   "fmt"   "test_mysql/redisC")const (   serverHost = "host:port")func main() {   // 1. 初始化redis客户端   redisClient := redisC.InitRedis(serverHost, "password", 0)   // 关闭redis客户端链接   defer redisClient.Conn.Close()   // 设置键值对   redisClient.SetValue("name", "15")   // 获取键对应的值   s := redisClient.GetValue("name")   fmt.Println(s)}

 

3. string 批量操作

未完待续...

脚本宝典总结

以上是脚本宝典为你收集整理的golang操作redis全部内容,希望文章能够帮你解决golang操作redis所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数据库