Redis(四)实战:redigo的安装和连接使用

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Conn接口是使用Redis数据库的主要接口。通过调用redis.Dial()来创建连接。创建连接完成操作后,必须调用连接关闭方法Conn.Close()。

前言


学习本文需要一些redis知识,请学习前面文章

详细可见个人博客:https://linzyblog.netlify.app/

一、Redigo


1、Redigo概述


Redigo是Redis数据库的Go客户端。用于实现Redis数据库的基本操作,支持Redis的所有命令。

Redigo 官方地址:点击跳转


2、安装


直接在在terminal里输入指令


go get github.com/gomodule/redigo/redis


二、Redigo使用


1、普通连接


Conn接口是使用Redis数据库的主要接口。通过调用redis.Dial()来创建连接。创建连接完成操作后,必须调用连接关闭方法Conn.Close()。


func main() {
  //创建Redis连接
  c, err := redis.Dial("tcp", "127.0.0.1:6379")
  if err != nil {
    log.Fatal(err)
  }
  //使用延迟函数,在函数结束前调用连接关闭
  defer c.Close()
}


若是Redis设置了密码:


func main() {
  //创建Redis连接
  c, err := redis.Dial("tcp", "127.0.0.1:6379",
    redis.DialUsername("username"),
    redis.DialPassword("password"),
  )
  if err != nil {
    log.Fatal(err)
  }
  //使用延迟函数,在函数结束前调用连接关闭
  defer c.Close()
}


2、创建Redis连接池(推荐)


func Setup() error {
  RedisConn = &redis.Pool{
    //最大空闲连接数
    MaxIdle: 30,
    //在给定时间内,允许分配的最大连接数(当为零时,没有限制)
    MaxActive: 30,
    //在给定时间内,保持空闲状态的时间,若到达时间限制则关闭连接(当为零时,没有限制)
    IdleTimeout: 200,
    //提供创建和配置应用程序连接的一个函数
    Dial: func() (redis.Conn, error) {
      c, err := redis.Dial("tcp", "127.0.0.1:6379")
      if err != nil {
        return nil, err
      }
      //如果redis设置了用户密码,使用auth指令
      if _, err := c.Do("AUTH", password); err != nil {
        c.Close()
        return nil, err
      }
      return c, err
    },
    TestOnBorrow: func(c redis.Conn, t time.Time) error {
      _, err := c.Do("PING")
      return err
    },
  }
  return nil
}


设置 RedisConn 为 redis.Pool(连接池)并配置了它的一些参数:


  • Dial:提供创建和配置应用程序连接的一个函数。


  • TestOnBorrow:可选的应用程序检查连接是否健康功能。


  • MaxIdle:最大空闲连接数。


  • MaxActive:在给定时间内,允许分配的最大连接数(当为零时,没有限制)。


  • IdleTimeout:在给定时间内,保持空闲状态的时间,若到达时间限制则关闭连接(当为零时,没有限制)。


3、简单Redis指令操作


//Do 方法将命令参数转换为批量字符串以传输到Redis服务器,交给Redis处理
//redis.String将Do操作后的返回值转换为String格式输出
s1, err := redis.String(c.Do("SET", "linzy", "18"))
if err != nil {
  log.Fatal(err)
}
fmt.Println(s1)
s2, err := redis.String(c.Do("GET", "linzy"))
if err != nil {
  log.Fatal(err)
}
fmt.Println(s2)
s3, err := redis.String(c.Do("GET", "linzydashuaige"))
if err != nil {
  log.Fatal(err)
}
fmt.Println(s3)


8eaf570ada9d4af8ab5c34db7d62eba0.png


可以参考我上一篇文《Redis五大基础数据类型》,自己动手测试吧。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
NoSQL Redis 数据库
Redis 连接
10月更文挑战第19天
31 0
|
19天前
|
监控 NoSQL 网络协议
【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题
查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。 开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。
|
2月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
140 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
1月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
67 5
|
2月前
|
NoSQL 网络协议 算法
Redis 客户端连接
10月更文挑战第21天
34 1
|
2月前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
108 2
|
2月前
|
NoSQL Ubuntu Linux
Redis 安装
10月更文挑战第14天
58 1
|
27天前
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
301 3