组件分享之后端组件——Redis数据库的一个Go客户端redigo

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:redigo
  • 开源协议: Apache-2.0 license

内容

本节分享一个Redis数据库的一个Go客户端redigo

它具有以下特征

  • 一个类似打印的API,支持所有 Redis 命令。
  • 流水线,包括流水线交易。
  • 发布/订阅。
  • 连接池。
  • 乐观使用 EVALSHA 的脚本助手类型。
  • 用于处理命令回复的辅助函数。

使用起来也非常简单,案例如下:
1、安装

go get github.com/gomodule/redigo/redis

2、使用

type Redis struct {Addr                  string        `toml:"addr"`     //redis地址因为需要考虑单机版和集成的情况下 地址使用[]stringPassword              string        `toml:"password"` //密码 没有则为空DB                    int           `toml:"db"`       //使用的数据库DialConnectionTimeout time.Duration `toml:"dialConnectionTimeout"`DialReadTimeout       time.Duration `toml:"dialReadTimeout"`DialWriteTimeout      time.Duration `toml:"dialWriteTimeout"`IdleTimeout           time.Duration `toml:"idleTimeout"`MaxIdle               int           `toml:"maxIdle"`   // 连接池中的最大空闲连接数MaxActive             int           `toml:"maxActive"` // 连接池在给定时间内分配的最大连接数。0没有限制}
func initRedis() (*redis.Pool, error) {log.Println("-----------开始初始化redis通用客户端")// 获取配置信息redisConfig := config.Get().RedisredisUrl := fmt.Sprintf("redis://%s", redisConfig.Addr)// 建立连接池redisClient := &redis.Pool{Dial: func() (redis.Conn, error) {con, err := redis.DialURL(redisUrl,redis.DialPassword(redisConfig.Password),redis.DialDatabase(redisConfig.DB),redis.DialConnectTimeout(redisConfig.DialConnectionTimeout*time.Second),redis.DialReadTimeout(redisConfig.DialReadTimeout*time.Second),redis.DialWriteTimeout(redisConfig.DialWriteTimeout*time.Second),)if err != nil {return nil, err}return con, nil},TestOnBorrow: func(c redis.Conn, t time.Time) error {_, err := c.Do("PING")if err != nil {log.Printf("ping redis error: %s", err)return err}return nil},MaxIdle:         redisConfig.MaxIdle,MaxActive:       redisConfig.MaxActive,IdleTimeout:     redisConfig.IdleTimeout * time.Second,Wait:            true,MaxConnLifetime: 0,}log.Printf("[redis util] init end !!!")return redisClient, nil}
redisClient,_ := initRedis()
c := redisClient.Get()
defer c.Close()
n, err := c.Do("APPEND", "key", "value")c.Send("SET", "foo", "bar")
c.Send("GET", "foo")
c.Flush()
c.Receive() // reply from SET
v, err = c.Receive() // reply from GET

更多前后端组件,可以持续关注我,我将持续给大家分享各种各样的组件包。

本文声明:
88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。


http://www.taodudu.cc/news/show-5202717.html

相关文章:

  • 抢购活动php,php结合redis实现高并发下的抢购、秒杀功能
  • RabbitMQ、Redis、以及数据库操作
  • Redis 知识点总结
  • 虹科干货|Redis企业版数据库为企业「数据安全」叠加最强Buff!
  • 微服务常见面试题(Java、数据库、Redis面试题)
  • Redis高频问题突击(附答案)
  • 微服务常见面试题(Java、数据库、Redis、SpringCloud面试题)
  • Redis(Remote Dictionary Server)学习笔记
  • Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计
  • Redis特性解读
  • Java大数据-Redis
  • 在C++下借助hiredis使用redis数据库
  • Redis常用数据类型及使用场景
  • 消息中间件----内存数据库 Redis7(第1章 Redis 概述)
  • Redis之数据类型详解分析
  • redis java 发布订阅_【Redis学习系列】Redis发布订阅
  • [YOLOv7/YOLOv5系列改进NO.39]引入改进遮挡检测的Tri-Layer插件 | BMVC 2022
  • Learning Texture Generators for 3D Shape Collections from Internet Photo Sets(2021BMVC) 阅读笔记
  • BMVC 2022 (东京大学)仅需90K参数!实时完成低光增强, 曝光矫正的超轻量级Transformer网络IAT,已开源
  • Adversarial Learning for Semi-Supervised Semantic Segmentation(BMVC2018)
  • 【弱监督视频异常检测】2019-BMVC-用于改进视频异常检测的运动感知功能
  • [BMVC 2021] Feature Fusion Vision Transformer for Fine-Grained Visual Categorization
  • BMVC 2022 (东京大学)仅需90K参数!实时完成低光增强, 曝光矫正的超轻量级Transformer网络IAT,已开源...
  • 虚拟机导入OVF格式
  • Dialect needs to be explicitly supplied as of v4.0.0
  • 西瓜书习题3.4 (交叉验证法)
  • (python基础)交叉验证
  • 可下载3d模型的网站
  • ECCV 2020 3D点云 Point Cloud 文章汇总
  • [Paper Reading-3d] AFDetV2: Real-Time Anchor-Free Single-Stage 3D Detection with IoU-Awareness

组件分享之后端组件——Redis数据库的一个Go客户端redigo相关推荐

  1. 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...

    组件分享之后端组件--阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件 ...

  2. 组件分享之后端组件——一个简单且高度可扩展的分布式文件系统seaweedfs

    组件分享之后端组件--一个简单且高度可扩展的分布式文件系统seaweedfs 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题 ...

  3. 组件分享之后端组件——基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq...

    组件分享之后端组件--基于Golang实现的高级消息队列协议 (AMQP) 的消息代理garagemq 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成 ...

  4. 组件分享之后端组件——基于Golang实现的基于LDAP V3协议的操作包ldap

    组件分享之后端组件--基于Golang实现的基于LDAP V3协议的操作包ldap 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续 ...

  5. 组件分享之后端组件——基于Golang语言的游戏服务器框架leaf

    组件分享之后端组件--基于Golang语言的游戏服务器框架leaf 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类 ...

  6. 组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack

    组件分享之后端组件--用于将日志写入滚动文件的组件包lumberjack 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包 ...

  7. 组件分享之后端组件——国际化组件go-i18n

    组件分享之后端组件--国际化组件go-i18n 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件 ...

  8. 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr

    组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...

  9. 组件分享之前端组件——用于自定义表单的前端组件form-create

    组件分享之前端组件--用于自定义表单的前端组件form-create 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各 ...

最新文章

  1. Windows环境下32位汇编程序设计C版code--第五章(一)
  2. Using SSL Certificates with HAProxy--reference
  3. hibernate常见错误及解决方法总结
  4. 11个鲜为人知的实用Linux命令 - Part 2
  5. php中sql格式化字符串,sqli注入-sprintf格式化字符串带来的注入隐患
  6. Java面试题详解二:java中的关键字
  7. 使用Oracle的DBMS_SQL包执行动态SQL语句
  8. 什么是模式识别,模式识别主要识别什么?
  9. c语言科学计数法整数位改为0,c语言科学计数法表示
  10. 爬取豆瓣电影top250
  11. 大数据时代的“拼图者”
  12. CC00070.bigdatajava——|Java循环结构.V09|——|Java.v09|双重for循环.v02|打印各种星星图案|
  13. 织梦dedecmsTAG出现404页面的解决办法
  14. python自动生成word报表之使用win32com插入自带可编辑的图表
  15. php中文加密解密,php加密解密详解
  16. 人人都想自学python_人人都想自学编程,为什么坚持下来的没几个?
  17. python elasticsearch 提示 ‘update‘ API and will be removed
  18. 止步89岁!宣布证明黎曼猜想后,数学大师阿蒂亚爵士突然逝世
  19. NI Package Manage软件的一些问题
  20. 中国科学技术大学2021计算机考研分数线,中国科学技术大学2021考研分数线已公布...

热门文章

  1. kotlin实现五子棋单机小游戏
  2. 关于安装了两个版本的JDK tomcat不能重启的解决方法
  3. Excel中按方向键,没有跳动单元格
  4. PS一键烟雾特效,画面瞬间高级了!
  5. postgis中批量对矢量数据进行火星坐标加/纠偏
  6. putty连接centos/Ubuntu一段时间无操作无法输入 死机 断线解决办法
  7. 酒店微信售房3种方案介绍
  8. python绘制n阶科赫曲线线段_034 实例8-科赫雪花小包裹
  9. 跳转无效location.href
  10. 基于javaee的酒店预订管理系统设计与实现、ssh框架+mysql数据库