Go 操作 Redis | 青训营笔记

211 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天


Redis 操作

Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、带范围查询的排序集合(sorted sets)、位图(bitmaps)、hyperloglogs。

在 Go 中的使用

go-redis

go-redis是一个基于Golang语言的Redis客户端组件。其功能也非常的强大与完善。支持如下功能。

  1. Redis通用命令支持、各大数据类型支持。
  2. Redis Cluster支持。
  3. Redis Replication支持。
  4. Redis Sentinel支持。
  5. 支持管道、事务、发布/订阅、Luau脚本、模拟和分布式锁等。

导入 go-redis 库

go get -u github.com/go-redis/redis

连接Redis

// 定义一个全局变量 
var redisdb *redis.Client func initRedis()(err error){ 
    redisdb = redis.NewClient(
        &redis.Options{ 
            Addr: "127.0.0.1:6379", // 指定 
            Password: "", 
            DB:0, // redis一共16个库,指定其中一个库即可 
       }) 
    _,err = redisdb.Ping().Result() 
    return 
}

操作 Redis

  • Redis 字符串数据类型的相关命令用于管理 redis 字符串值
  • Redis hash 特别适合用于存储对象它是一个 string 类型的 field(字段) 和 value(值) 的映射表
  • Redis List 是简单的字符串列表,按照插入顺序排序。
  • Set是 String 类型的无序集合且集合成员是唯一的
  • Redis 有序集合 Zset 是 string 类型元素的集合且不允许重复的成员, 但是会通过分数来为集合中的成员进行从小到大的排序。
	// 存普通string类型,10分钟过期
	redisdb.Set("test:name","科科儿子",time.Minute*10)
	// 存hash数据
	redisdb.HSet("test:class","521",42)
	// 存list数据
	redisdb.RPush("test:list",1)  // 向右边添加元素
	redisdb.LPush("test:list",2)  // 向左边添加元素
	// 存set数据
	redisdb.SAdd("test:set","apple")
	redisdb.SAdd("test:set","pear")
    
        // zset 添加
        func zset()  {
            key := "rank"
            items := []redis.Z{
		redis.Z{Score: 90,Member:"PHP"},
		redis.Z{Score: 93,Member:"JAVA"},
		redis.Z{Score: 96,Member:"C++"},
		redis.Z{Score: 92,Member:"PYTHON"},
		redis.Z{Score: 100,Member:"GOLANG"},
	}
	// 添加元素到redis中
	_,err := redisdb.ZAdd(key, items...).Result()
	if err != nil {
		fmt.Printf("redis zadd failed! err:%v\n",err)
		return
	}
	fmt.Println("数据传输成功!!!")
}


如果你发现了文章出现了错误或有不足,欢迎在评论区和我交流,我看到了一定会回复。

写文章不易,如果你觉得文章对你有帮助,麻烦点一下点赞、收藏,你的支持是我写文章的最大动力!