Redis连接池的介绍与使用

2023-11-05

一.介绍

说明:通过golang对redis操作,还可以通过redis连接池,流程如下:

  1. 事先初始化一定数量的连接,放入到连接池。
  2. 当go需要操作redis时,直接从redis连接池取出连接即可。
  3. 这样可以节省临时获取redis连接的时间,从而提高效率。

二.核心代码:

var pool *redis.Pool
pool =&redis.Pool{
   MaxIdle:8,//最大空闲连接数
   MaxActive:0,//表示和数据库的最大连接数,0表示没有限制
   IdleTimeout:100,//最大空闲时间
   Dial: func() (redis.Conn, error) {//初始化连接,连接到哪个ip的redis数据库
      return redis.Dial("tcp","localhost:6379")
   },
}
con := pool.Get()//先从pool取出一个连接
pool.Close()//关闭连接池

三.连接池案例:

package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

var pool *redis.Pool

//当启动程序时,就初始化连接池
func init()  {
	pool =&redis.Pool{
		MaxIdle:8,//最大空闲连接数
		MaxActive:0,//表示和数据库的最大连接数,0表示没有限制
		IdleTimeout:100,//最大空闲时间
		Dial: func() (redis.Conn, error) {//初始化连接,连接到哪个ip的redis数据库
			return redis.Dial("tcp","localhost:6379")
		},
	}

}

func main()  {

	con := pool.Get()//先从pool取出一个连接
	defer con.Close()//延迟关闭连接

	_,err := con.Do("Set","name","小米")
	if err != nil{
		fmt.Println("set失败")
		return
	}

	reply,err :=redis.String(con.Do("Get","name"))
	if err != nil{
		fmt.Println("get失败")
		return
	}

	fmt.Println("名字:",reply)
}

执行结果:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis连接池的介绍与使用 的相关文章

  • django:redis:CommandError: 您尚未设置运行服务器所需的 ASGI_APPLICATION

    我正在尝试在 django 中创建套接字 我按照这个安装了asgi redislink https realpython com getting started with django channels 当我运行命令 python mana
  • 如何在node.js中为相同的两个应用程序分离redis数据库

    我有两个相同的应用程序 一个用于演示 一个用于开发 并且我使用 redis 数据库来存储键值 我如何为这两个不同的应用程序分离 redis 数据库 我使用 Node js 作为 Redis 客户端 我用这个https github com
  • 为什么我不能让单个 Redis 客户端在同一连接中充当 PUB 和 Sub ?

    我的思维模型是 聊天 我订阅了某个频道 并且可以向该频道发布消息 由于 pub sub 是异步的 因此发布的消息可能随时出现 包括当您期望命令响应时 尽管 Redis 是单线程的 通常会阻止此类事情 但网络延迟可能会导致一些有趣的影响 根据
  • ServiceStack:手动调用服务时恢复管道?

    作为后续这个问题 https stackoverflow com questions 64560997 servicestack messaging api can it make a broadcast 我想了解如何改进我对服务的手动调用
  • 带 Java 客户端的键值数据库

    我基本上想在磁盘上存储一个哈希表 以便以后可以查询它 我的程序是用Java 编写的 哈希表从字符串映射到列表 那里有很多键值存储 但经过大量研究 阅读后 尚不清楚哪一个最适合我的目的 以下是一些对我来说很重要的事情 简单的键值存储 允许您使
  • 如何在多线程应用程序中使用 StackExchange.Redis IDatabase 对象?

    我从 StackExchange Redis 文档中收到有关如何使用 IDatabase 的混合消息 在里面基本使用文档 https github com StackExchange StackExchange Redis blob mas
  • 找不到模块“socket.io/node_modules/redis”

    当尝试做的时候 var redis require socket io node modules redis 我收到错误 找不到模块 socket io node modules redis 我不明白为什么 我正在运行 Windows 并运
  • AWS Redis 从外部连接

    有没有办法从外部 AWS 网络连接 AWS 上托管的 Redis 实例 我有一个基于 Windows 的 EC2 实例在 AWS 上运行 另一个是 Redis 缓存节点 我知道有人问过这个问题 但答案是在基于 Linux 的系统中 但我的是
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r
  • 我的 Redis 自动生成的密钥

    我不知道我的 Redis 版本 4 0 9 到底发生了什么 我正在运行一个应用程序并使用 Redis 来存储我的数据库 但是 然后 Redis 自动创建 3 个新键 Backup1 Backup2 Backup3 并删除我的所有数据 这是我
  • Redis键空间事件不触发

    我有两个 Redis 客户端 在一个文件中我有一个简单的脚本设置并删除了 Redis 键 var redis require redis var client redis createClient 6379 127 0 0 1 client
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • 通过 StackExchange.Redis 连接到 Redis Servier

    我尝试使用以下方法制作一个测试项目Redis https redis io服务器 通过 Virtual Box 安装在 Linux Ubuntu 虚拟机上 Linux 机器通过 Virtual Box 的桥接适配器与本地网络连接 Virtu
  • 在 Kubernetes/Openshift 中将客户端-服务器流量保持在同一区域的最佳方法?

    我们运行兼容 Kubernetes OKD 3 11 的本地 私有云集群 其中后端应用程序与用作缓存和 K V 存储的低延迟 Redis 数据库进行通信 新的架构设计将在两个地理上分布的数据中心 区域 之间平均划分工作节点 我们可以假设节点
  • 无法启动redis.service:单元redis-server.service被屏蔽

    我在 ubuntu 16 04 上安装了 Redis 服务器 但是当我尝试使用启动redis服务时 sudo systemctl start redis 我收到消息 Failed to start redis service Unit re
  • 如何设置和获取Redis中存储的对象?

    我试图在 redis 中存储一个对象 当我获取该对象时 它似乎不起作用 I tried u User new u name blankman redis set test u x redis get test x name error 我想
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客

随机推荐

  • Python字典中的值为列表或字典的构造方法

    1 值为列表的构造方法 dic dic setdefault key append value 示例如下 gt gt dic setdefault a append 1 gt gt dic setdefault a append 2 gt
  • 关于点击UIButton弹出键盘,并且键盘的上方还需添加UITextField或者UITextView的解决方法

    最近在做一个项目的时候 有这样一个需求 点击UIButton弹出键盘 键盘的上方还需添加一个输入框 UITextField UITextView 开始的想法是直接设置输入框的 inputAccessoryView 设置后发现键盘根本就没显示
  • 视频中的物理要素——提取人们产生共情的元素

    近几年油管 各种小视频的兴起 似乎在为我们打开一扇门 研究角度来看 人们为什么对小视频如此痴迷 短暂的欲望得到满足 为什么通过视觉刺激 听觉刺激可以在观看吃播的时候 观看者也可以得到同样的对食物满足的情绪刺激 很重要的原因是 我们很需要很需
  • 格式化字符串学习

    常见的格式化字符串函数 输出 函数 基本介绍 printf 输出到 stdout fprintf 输出到指定 FILE 流 vprintf 根据参数列表格式化输出到 stdout vfprintf 根据参数列表格式化输出到指定 FILE 流
  • c++ auto类型用法总结

    一 用途 auto是c 程序设计语言的关键字 用于两种情况 1 声明变量时根据初始化表达式自动推断该变量的类型 2 声明函数时函数返回值的占位符 二 简要理解 auto可以在声明变量时根据变量初始值的类型自动为此变量选择匹配的类型 举例 对
  • 安装Zookeeper和Kafka集群

    安装Zookeeper和Kafka集群 本文介绍如何安装Zookeeper和Kafka集群 为了方便 介绍的是在一台服务器上的安装 实际应该安装在多台服务器上 但步骤是一样的 安装Zookeeper集群 下载安装包 从官网上下载安装包 cu
  • LDAP 入门知识

    LDAP的基本概念 LDAP是轻量目录访问协议 Lightweight Directory Access Protocol 的缩写 是一种基于 客户机 服务器模式的目录服务访问协议 其实是一话号码簿 LDAP是一种特殊的数据库 LDAP 目
  • jpa方法名命名规则

    一 常用规则速查 1 And 并且2 Or 或3 Is Equals 等于4 Between 两者之间5 LessThan 小于6 LessThanEqual 小于等于7 GreaterThan 大于8 GreaterThanEqual 大
  • Auto.js实现i茅台自动化申购

    i茅台自动化申购 文章目录 i茅台自动化申购 前言 一 前提条件 二 代码示例 总结 前言 现在茅台行情十分火热 茅台集团推出了i茅台APP供大家申购 下面介绍使用Auto js实现自动化申购 一 前提条件 需要下载Auto js的apk
  • 40.1自定义组建el-cascader

    1 子组件
  • 51单片机模拟救护车的警报声

    include
  • React Hooks --useEffect

    再用class写组件时 经常会用到生命周期函数 来处理一些额外的事情 副作用 和函数业务主逻辑关联不大 特定时间或事件中执行的动作 比如请求后端数据 修改Dom等 在React HookS中也需要类似的生命周期函数 useEffect由此诞
  • t检验与方差分析的区别和联系

    一 t检验和方差分析的应用 1 t检验的应用 t检验主要用于比较两组数据之间的均值是否存在显著差异 例如比较两种手术方式对患者的术后疼痛程度是否有显著差异 在医学研究中 t检验可以用于比较不同手术方式或药物对患者的疗效差异 例如 我们可以采
  • kettle的下载安装以及问题点

    1 kettle下载以安装 1 kettle的官网下载地址 Pentaho from Hitachi Vantara Browse Files at SourceForge net 2 如果需要下载其他版本 直接点击对应的版本Name 8
  • 闪回数据归档+闪回数据归档区+创建闪回数据归档区+创建闪回数据归档区案例+为数据归档区添加表空间+为数据归档区删除表空间+数据归档区修改数据保留时间+删除数据归档区

    闪回数据归档 1 它将改变的数据另外存储到特定的闪回数据归档区中 从而让闪回不再受撤销数据的限制 提高数据的保留时间 2 闪回数据归档中的数据行可以保留几年甚至几一年 3 闪回数据归档并不针对所有的数据改变 它只记录update和delet
  • 小程序搭建mqtt服务器,微信小程序连接MQTT服务器实现控制Esp8266LED灯

    上一篇文章已实现Esp8266开发板与MQTT服务器连接实现控制LED灯 这篇文章记录继上篇的功能接入微信小程序实现LED灯的控制 先理解一个概念 微信小程序订阅MQTT服务器一个主题 Esp8266订阅相同的主题时 微信小程序发送给MQT
  • python raise

    当程序出现错误 python会自动引发异常 也可以通过raise显示地引发异常 一旦执行了raise语句 raise后面的语句将不能执行 演示raise用法 try s None if s is None print s 是空对象 rais
  • 各类数据类型sizeof的大小

    前言 之前总是误认为指针变量的大小和指针所指向的对象有关系 搞网络驱动时 使用kmalloc做内存申请时发现了一些端倪 先简单介绍下sizeof sizeof 是一个关键字 它是一个编译时的运算符 用于判断变量或数据类型的字节大小 size
  • UE4智慧城市开发流程梳理

    智慧城市开发流程梳理 摸索UE智慧城市相关做的总结梳理 并不是很专业 如有差错欢迎指正 1 GIS数据获取 谷歌地图 地理数据网站等中获取 或者使用第三方软件下载 水经注GIS ESRI有的ArcGIS online Cesium的ION
  • Redis连接池的介绍与使用

    一 介绍 说明 通过golang对redis操作 还可以通过redis连接池 流程如下 事先初始化一定数量的连接 放入到连接池 当go需要操作redis时 直接从redis连接池取出连接即可 这样可以节省临时获取redis连接的时间 从而提