原文链接如何在 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阅读
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)
1. redis简单介绍redis支持数据的持久化,将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用 redis不仅仅支持key-value数据,还支持:string,list,set,hash等 redis支持数据备份,即master-slaver模式的数据备份 读11w/s,写8W/s,单机能达到15W qps,性能极高,非常适合做缓存 redis的所有操作都是原子性的,单个操作是
安装 下载第三方包: 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
了解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阅读
Go 基于 Redis + Lua 实现分布式限流器限流算法在分布式系统设计中有广泛的应用,特别是在系统的处理能力有限的时候,通过一种有效的手段阻止限制范围外的请求继续对系统造成压力,避免系统被压垮,值得开发工程师们去思考。实际生活中,限流器算法通常作为限制用户行为的一种方式之一。比如最近我在某东抢 PS5,开始购买的一瞬间就没了,肯定是有些用户使用了脚本去抢(黑产!),导致我们用手的人很难抢到。
转载 2023-05-29 15:56:00
285阅读
1.使用第三方开源的redis库:github.com/garyburd/redigo/redis 2.在使用之前,先安装第三方Redis库,在GOPATH下执行(需要已安装Git):go get github.com/garyburd/redigo/redis3.安装成功后,可以在GOPATH/src/下产生一个github.com的包:4.通过go向redis写入数据和读取数据先运行redis
转载 2023-07-15 03:07:45
119阅读
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阅读
背景:redis集群执行lua脚本时不同于单机情况,lua脚本在执行时需要确保key在同一个node节点上,换句话说也就是需要保证 slot=crc16%16384,通过对key进行hash运算,其slot会分布在同一个node节点所属范围。解决思路:为了使key都落在一个node节点上可以通过添加 {} hashTag来实现。原理:相同的hashtag被分配到相同的节点,相同的槽。 hash算法
转载 2023-05-25 11:22:06
224阅读
读写缓存是在自动化测试中不可缺少的步骤,以我项目中的读写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处理一个队列问题,顺便复习了一下redis操作的基础知识,回来后就想着在自己的博客demo里,用redis来优化一些使用场景,学习一下golang开发下redis的使用。Redis简单介绍简介关于Redis的讨论,其实在现在的后台开发中已经是个老生常谈的问题,基本上也是后端开发面试的基本考察点。其中 Redis的背景介绍和细节说明在这里就不赘述。不管怎
转载 2024-06-05 16:40:38
29阅读
单例模式是常用的,最简单的设计模式之一,该模式保证一个类仅一个实例,避免重复创建与内存开销,确保有且仅有一个对象被创建。从Java语言来讲,主要有以下几种:1. 饿汉式(又分为:静态常量,静态代码块两种方式实现);2. 懒汉式(又分为:线程不安全、线程安全-同步方式,线程安全-同步代码 块);3. 双重验证式4. 静态内部类5. 枚举本文实现的是 双重验证式 单例模式。redisCluster.g
Redis基本数据类型代码示例#这里示例使用 go-redis v8 ,不过 go-redis latest 是 v9安装v8:go get github.com/go-redis/redis/v8Redis 5 种基本数据类型: string 字符串类型;list列表类型;hash哈希表类型;set集合类型;zset有序集合类型 最基本的Set/Get操作#setget.go
转载 2024-06-27 11:20:01
44阅读
本文是使用 golang 实现 redis 系列的第七篇, 将介绍如何将单点的缓存服务器扩展为分布式缓存。我们采用一致性 hash 算法 key 分散到不同的服务器,客户端可以连接到服务集群中任意一个节点。当节点需要访问的数据不在自己本地时,需要通过一致性 hash 算法计算出数据所在的节点并将指令转发给它。 本文是使用 golang 实现 redis
转载 2023-08-09 21:29:26
107阅读
一、背景 业务中经常会有这样的场景: 到期后自动执行指定操作; 查询某个任务是否完成,未完成等待一定时间再次查询; 回调通知,当回调失败时,等待后重试;等等还有其他很多类似的场景。 很多时候我们会直接通过一个本地定时器来帮我们完成这个任务。如果我们的系统是多实例分布式的,本地定时器就会面临很多问题,如:怎么保证重复处理的问题;统一管控的问题等等。面
转载 2023-06-05 15:38:19
167阅读
  • 1
  • 2
  • 3
  • 4
  • 5