go-redis-client

Redis 的 Go 客户端开发包
授权协议 MIT
开发语言 Google Go
所属分类 数据库相关、 数据库驱动程序
软件类型 开源软件
地区 国产
投 递 者 谷彦君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

go-redis-client 是国内团队灵雀云开发的 Go 语言的 Redis 客户端开发包,支持 Redis 单机和集群。

特性

  • 自动键前缀
  • 创建客户端实例时使用独立的参数对象
  • 内部使用 github.com/go-redis/redis 客户端,当前使用的是 gopkg.in/redis.v5
  • 客户端接口

示例

package main

import "redis" github.com/alauda/go-redis-client

func main() {
  // check options.go for more details
  opts := redis.RedisClientOptions{
    Type: 	  redis.ClientNormal,
    Hosts:    []string{"localhost:6379"},
    Password: "123456",
    Database: 0,
  }
  client := redis.NewRedisClient(opts)
  if err := client.Ping().Err(); err != nil {
    panic(err)
  }
  
  // Using cluster mode
  clusterOpts := redis.RedisClientOptions{
    Type:      redis.ClientCluster,
    Hosts:     []string{"localhost:7000","localhost:7001","localhost:7002"},
    Password:  "123456",
    Database:  0,
    // all keys with a prefix
    KeyPrefix: "my-app:",
  }
  clusterClient := redis.NewRedisClient(clusterOpts)
  if err := clusterClient.Ping().Err(); err != nil {
    panic(err)
  }
}

Supported commands

  • Ping
  • Incr
  • IncrBy
  • Decr
  • DecrBy
  • Expire
  • ExpireAt
  • Persist
  • PExpire
  • PExpireAt
  • PTTL
  • TTL
  • Exists
  • Get
  • GetBit
  • GetRange
  • GetSet
  • MGet
  • Dump
  • HExists
  • HGet
  • HGetAll
  • HIncrBy
  • HIncrByFloat
  • HKeys
  • HLen
  • HMGet
  • HMSet
  • HSet
  • HSetNX
  • HVals
  • LIndex
  • LInsert
  • LInsertAfter
  • LInsertBefore
  • LLen
  • LPop
  • LPush
  • LPushX
  • LRange
  • lRem
  • LSet
  • LTrim
  • RPop
  • RPopLPush
  • RPush
  • RPushX
  • Set
  • Append
  • Del
  • Unlink
  • SAdd
  • SCard
  • SDiff
  • SDiffStore
  • SInter
  • SInterStore
  • SIsMember
  • SMembers
  • SMove
  • SPop
  • SPopN
  • SRandMember
  • SRem
  • SUnion
  • SUnionStore
  • ZAdd
  • ZAddNX
  • ZAddXX
  • ZAddCh
  • ZaddNXCh
  • ZIncr
  • ZIncrNX
  • ZIncrXX
  • ZCard
  • ZCount
  • ZIncrBy
  • ZInterStore
  • ZRange
  • ZRangeWithScores
  • ZRangeByScore
  • ZRangeByLex
  • ZRangeByScoreWithScores
  • ZRank
  • ZRem
  • ZREmRangeByRank
  • ZRemRangeByScore
  • ZRemRangeByLex
  • ZRevRange
  • ZRevRangeWithScores
  • ZRevRangeByScore
  • ZRevRangeByLex
  • ZRevRangeByScoreWithScores
  • ZRevRank
  • ZScore
  • ZUnionStore
  • BLPop
  • BRPop
  • BRPopLPush
  • Type
  • Scan
  • SScan
  • ZScan
  • HScan
  • Publish
  • Subscribe

TODO

  •  Update to redis.v6
  •  Support RedisCluster Subscribe
  •  Better support for godoc
  •  Add docker-compose and example application
  •  Add tests
  • 在 Go 语言中使用 Redis 时,可以使用第三方库实现 Redis Client 的封装。本文介绍如何使用 Go 语言的 redisClient 去连接 Redis 服务器,并进行常见的操作。 常见操作 首先,需要安装第三方库:go-redis/redis。安装命令如下: go get github.com/go-redis/redis 接下来,就可以在代码中引入 redis 并建立连接:

  • 学习redis的时候,随便整理下。接口:github.com/alphazero/Go-Redis 中的redis.client 1、AllKeys  无入参 出参:1、[]string 实例对应库中所有的Key值       2、redis.Error 返回对应库中所有的key(等于keys *) 2、Bgsave 入参:无 出参:redis.Error 后台保存rdb快照,执行后dump.rd

  • go-redis/redis 使用 go-redis 是go用来链接redis数据库的包。截止当前时间github上star 8.7k 环境: go go-redis go1.13.5 v6.15.7+incompatible 安装: 使用go mod 进行安装 在go.mod 中加入: module github.com/luslin/tools go 1.13 require ( githu

  • 版权所有,请勿转载 2022-09-16 更新:版本6在MinIdleConns最小连接数的维持上存在一个BUG,需要升级到v7.0.0以上  go-redis模块自带连接池,所有参数都是可选的,参数配置说明示例如下: package main import ( "fmt" "github.com/go-redis/redis" "net/http" "net" "time" ) v

  •  订阅subscribe package main import ( "fmt" "github.com/go-redis/redis" ) func main() { client := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379",

  • package main import ( "fmt" "log" "math/rand" "sync" "time" "github.com/go-redis/redis" ) var redisdb *redis.Client var wg sync.WaitGroup func main() { wg.Add(1) go

  • redis初始化 func RedisInit() *redis.Client { var rdb = redis.NewClient(&redis.Options{Addr: "x.x.x.x:6379", Password: "xxxxxx", DB: 6, //连接池容量及闲置连接数量 //go-redis包自带了连接池,会自动维护redis连接,因此创建一次client即可,不要

  • 为什么使用连接池? 首先Redis也是一种数据库,它基于C/S模式,因此如果需要使用必须建立连接,稍微熟悉网络的人应该都清楚地知道为什么需要建立连接,C/S模式本身就是一种远程通信的交互模式,因此Redis服务器可以单独作为一个数据库服务器来独立存在。假设Redis服务器与客户端分处在异地,虽然基于内存的Redis数据库有着超高的性能,但是底层的网络通信却占用了一次数据请求的大量时间,因为每次数据

  • 实现 大体上的实现思路是声明了一个用来执行redis命令的cmdable结构体,调用该结构体的process方法就可以执行传入的语句 type cmdable struct { process func(cmd Cmder) error } 需要传入的cmd是一个Cmder格式的值 type Cmder interface { Name() string Args() []interfac

  • type RedisUtil struct{} var Redis = new(RedisUtil) var ( ctx = context.Background() rdb *redis.Client ) // InitRedis 初始化 func InitRedis() *redis.Client { rdb = redis.NewClient(&redis.Options{ A

  • 0. 背景 Redis 的 API 非常简单和易于编程。处理使用命令行工具来连接,也可以用你喜欢的语言,本文描述使用 Go 语言 通过 go-redis 库连接。 个人更建议 使用 redigo库 来操作redis数据,参考我的另一篇文章使用 redigo 访问 redis。 1.go-redis 介绍 go-redis 是一个基于 Go 语言的 ,类型安全的 Redis 连接客户端框架 Gith

  • 参考地址:https://github.com/go-redis/redis 定义上下文以及连接的相关信息 var ctx = context.Background() var rdb = redis.NewClient(&redis.Options{ Addr: "localhost:6379", }) string func TestString(t *testing.T) { rdb.

  • Go-Redis的使用方法 一、导入包 "github.com/go-redis/redis/v8" //版本可以更改的 二、初始化链接 var ( rdb *redis.Client ) // 初始化连接 func initClient() (err error) { rdb = redis.NewClient(&redis.Options{ Addr: "localhos

  • 1. 第三方库 go-redis 因为 Go 标准库中是没提供 redis 的库,所以我们选择用 go-redis 这个第三方库。源码地址为 https://github.com/go-redis/redis 在命令行中使用 go get 来安装 go get github.com/go-redis/redis 2. 初始化 Redis 在进行代码之前,需要先安装 redis,安装指导请参考:h

  • redis官网推荐redigo, 但同时go-redis也使用非常广泛, 并且go-redis封装得更好 因此这里研究下go-redis的使用方法 安装: go get -u github.com/go-redis/redis 源码地址: https://github.com/go-redis/redis 文档地址:https://godoc.org/github.com/go-redis/re

  • Go语言第三方 redis 库 github.com/go-redis/redis go-redis库的使用 package main import ( "context" "fmt" "github.com/go-redis/redis/v8" "log" ) func ConnectRedis() *redis.Client{ client := redis.NewClient(

  • 目录 一、 基本指令 1.0 拉取 go-redis 源码: 1.1 连接到 redis 服务端:  1.2 优雅的存储结构体: 1.3 Keys 根据正则表达式获取键 1.4 Type 获取 key 对应的值类型 1.5 Exists 检测某个缓存项是否存在 1.6 Expire, ExpireAt 设置缓存有效期;TTL, PTTL 获取缓存有效期 1.7 DBSize 查看当前数据库的缓存项

  • go-redis ZSet有序集合操作 ->go-redis String字符串使用详解 ->go-redis List列表使用详解 ->go-redis Hash哈希使用详解 ->go-redis Set集合使用详解 ZSet(sorted set):有序不重复集合 ZSet的每个元素都会关联一个float64类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员

 相关资料
  • go的rpc服务端返回的gorm.ErrRecordNotFound与客户端的gorm.ErrRecordNotFound使用errors.Is比较的结果为false。 尝试在两端都注册: errors.Is依旧返回false。 现在的解决方案是直接比较字符串的相等性来判断是不是ErrRecordNotFound错误。 想问下,如果利用errors.Is来比较的话,要怎样实现?

  • Go-Redis 是 Redis 数据库的 Google Go 语言的客户端开发包。

  • 您可以get get client-go的一个版本,例如get get k8s.io/client-go/1.4/...或者获取k8s.io/client-go/1.4/kubernetes。 现在当我这么做的时候。这是输出- 警告:“k8s.io/client-go/1.4/...”匹配的无包无法加载包:包。:/users/shubhadeeproychowdhury/projects/Go/s

  • Go-redis-server 是使用 Go 实现 Redis 服务协议的开发包。 有许多客户端能够实现 redis 协议,但很多服务器不能实现。 go-redis-server 不仅能通过 redis 协议,帮助构建服务器软件;还能够作为 redis 实现的候选者,能够只从 redis,甚至在后端“伪装”执行 redis 数据库的 API。 简单代码示例: package mainimport 

  • redis-go-cluster 是基于 Redigo 实现的 Golang Redis 客户端。redis-go-cluster 可以在本地缓存 slot 信息,并且当集群修改的时候会自动更新。此客户端管理每个节点连接池,使用 goroutine 来尽可能的并发执行,达到了高效,低延迟。 redis-go-cluster 支持: Most commands of keys, strings, l

  • 本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。 LiteIDE LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 图1.4 LiteIDE主界面 LiteIDE主要特点: 支持主流操作系统 Windows Linux MacOS X Go编译环境管理和切换 管理和切换多个Go