golang的sync的包有一个功能WaitGroup 作用:阻塞主线程的执行,直到所有的goroutine执行完成,说白了就是必须同步等待所有异步操作完成!!! 三个方法:Add:添加或者减少等待goroutine的数量Done:相当于Add(-1)Wait:执行阻塞,直到所有的WaitGroup数量变成0 example:package main
import
转载
2023-07-02 19:53:29
98阅读
# 使用golang连接多个Redis服务器
在实际开发中,我们经常会遇到需要连接多个Redis服务器的情况,这样可以提高系统的性能和可靠性。在golang中,我们可以使用第三方库`github.com/go-redis/redis`来连接Redis服务器。本文将介绍如何使用golang连接多个Redis服务器,并提供代码示例。
## 安装go-redis/redis库
首先,我们需要安装`
原创
2024-03-04 05:12:03
117阅读
目录Redis介绍Redis支持的数据结构Redis应用场景准备Redis环境go-redis库安装连接普通连接V8新版本相关连接Redis哨兵模式连接Redis集群基本使用HValsset/get示例zset示例根据前缀获取Key执行自定义命令按通配符删除keyPipeline事务WatchRedis介绍Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问
转载
2024-06-09 16:34:11
24阅读
# 如何实现"golang redis 多个消费者"
## 一、流程步骤
| 步骤 | 操作 |
|--------|--------|
| 1 | 创建Redis连接 |
| 2 | 启动多个消费者协程 |
| 3 | 监听Redis队列 |
| 4 | 处理队列中的消息 |
## 二、具体操作步骤
### 1. 创建Redis连接
在Go中使用第三方库`github.com/go-r
原创
2024-03-16 04:45:35
126阅读
原文链接如何在 Golang 中使用 Redis 订阅/发布订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
转载
2023-06-01 14:48:01
377阅读
pipeline
pipeline 是你可以用来在系统中形成抽象的另一种工具。特别是当程序需要流式处理 或批处理数据时,它是一个非常强大的工具。
pipeline 只不过是一系列将数据输入, 执行操作并将结果数据传回的系统。 将这些操作称为 pipeline 的一个 stage. 通过使用pipeline, 可以分离每个stage的关注点, 这提供了很多好处。如可以可以相互独立地修改各个stag
转载
2024-02-27 09:14:45
39阅读
Redis介绍Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。 除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统Redis支持的数据结构Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集合(set
转载
2024-06-06 14:52:41
62阅读
欢迎来到第二十四节。什么是select?select模式是用来从多输入/输出通道中进行选择的一种操作。select模式下会一直阻塞直到至少一个可读/写操作就绪,如果多个读写操作就绪,那么久随机从中选择一个。语法有点类似switch除了每个case选择都是一个通道操作。为了更好理解上代码:package main
import (
"fmt"
"time"
)
func
转载
2024-04-02 10:19:15
9阅读
1. redis简单介绍redis支持数据的持久化,将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用
redis不仅仅支持key-value数据,还支持:string,list,set,hash等
redis支持数据备份,即master-slaver模式的数据备份
读11w/s,写8W/s,单机能达到15W qps,性能极高,非常适合做缓存
redis的所有操作都是原子性的,单个操作是
转载
2024-06-30 14:55:55
40阅读
1. 安装第三方开源Redis库1)使用第三方开源的Redis库:github.com/garyburd/redigo/redis2)在使用Redis前,先安装第三方Redis库,在GOPATH路径下执行安装指令:GOPATH>go get github.com/garyburd/redigo/redis3)安装成功后,可以看到如下包特别说明:在按照Redis库之前,需要安装并配置Git,因
转载
2023-07-12 00:17:39
182阅读
1.6搭建主从 主从概念 a) ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 b) master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1 c) 通过主从配置可以实现读写分离 d) master和slave都是一个redis实例 主从配置 配置主 a) 查看当前主机的ip地址 Ifconfig b)
转载
2024-03-03 22:14:30
85阅读
安装 下载第三方包: go get -u github.com/go-redis/redis/v9 连接 // 定义一个rdis客户端 var redisdb *redis.Client // 初始化 func initClient() (err error) { redisdb = redis.N ...
转载
2021-08-19 17:09:00
402阅读
2评论
## 实现“golang redis”流程
下面是实现“golang redis”所需的步骤表格,这将帮助你快速了解整个过程:
| 步骤 | 描述 |
| --- | --- |
| 步骤1 | 引入redis库 |
| 步骤2 | 建立与Redis服务器的连接 |
| 步骤3 | 执行Redis操作(设置、获取数据等) |
| 步骤4 | 关闭与Redis服务器的连接 |
下面是每个步骤需
原创
2023-07-26 23:28:29
30阅读
目录1. Redis:1.1 简介:1.2 连接redis1.3 常用api:1.3 连接池:1.4 项目中使用: 1. Redis:1.1 简介: garyburd/redigo 包是网上很多博文都在推荐使用的一个高Star的Redis连接包,项目已经迁移到了gomodule/redigo,同时包的获取也理所当然地改成了go get github.com/gomodule/redigo/re
转载
2023-08-21 14:16:43
122阅读
了解golang接口模式/* 定义接口 */
type interface_name interface {
method_name1 [return_type]
method_name2 [return_type]
method_name3 [return_type]
...
method_namen [return_type]
}
/* 定义结构体 */
typ
转载
2024-03-04 10:41:25
31阅读
读写缓存是在自动化测试中不可缺少的步骤,以我项目中的读写redis为例,总结下常用的操作连接:func openRdb() redis.Conn {
c, err := redis.Dial("tcp", "××××××××××aliyuncs.com:6379")//network和数据库ip
if err != nil {
fmt.Println(err)
return c
转载
2023-09-19 05:46:44
106阅读
背景:redis集群执行lua脚本时不同于单机情况,lua脚本在执行时需要确保key在同一个node节点上,换句话说也就是需要保证 slot=crc16%16384,通过对key进行hash运算,其slot会分布在同一个node节点所属范围。解决思路:为了使key都落在一个node节点上可以通过添加 {} hashTag来实现。原理:相同的hashtag被分配到相同的节点,相同的槽。
hash算法
转载
2023-05-25 11:22:06
224阅读
Go 基于 Redis + Lua 实现分布式限流器限流算法在分布式系统设计中有广泛的应用,特别是在系统的处理能力有限的时候,通过一种有效的手段阻止限制范围外的请求继续对系统造成压力,避免系统被压垮,值得开发工程师们去思考。实际生活中,限流器算法通常作为限制用户行为的一种方式之一。比如最近我在某东抢 PS5,开始购买的一瞬间就没了,肯定是有些用户使用了脚本去抢(黑产!),导致我们用手的人很难抢到。
转载
2023-05-29 15:56:00
285阅读
周五上班的主要任务是在公司老平台上用redis处理一个队列问题,顺便复习了一下redis操作的基础知识,回来后就想着在自己的博客demo里,用redis来优化一些使用场景,学习一下golang开发下redis的使用。Redis简单介绍简介关于Redis的讨论,其实在现在的后台开发中已经是个老生常谈的问题,基本上也是后端开发面试的基本考察点。其中 Redis的背景介绍和细节说明在这里就不赘述。不管怎
转载
2024-06-05 16:40:38
29阅读
01介绍在之前的文章介绍过 Golang 操作 Redis 的三方库 go-redis,本文主要介绍另外一个 Golang 操作 Redis 的三方库 redigo,它是 Golang 官方推荐使用的 Redis 客户端。go-redis 三方库为我们封装了很多函数来执行 Redis 命令,而 redigo 三方库只有一个 Do 函数执行 Redis 命令,更接近使用 redis-cli 操作 R
转载
2023-07-11 22:18:34
230阅读