了解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阅读
在前一篇介绍中实现了一个工作队列,它假设队列中的每一个任务都只会被分发到一个工作者进行处理。在本篇中,我们尝试将同一个消息发送给多个消费者进行处理,这就是广为人知的发布/订阅模式。本篇通过搭建一个日志系统来阐述发布/订阅模式,它包含两部分内容:一个用于产生日志消息的程序,另一个用于接收和打印消息。 在这个日志系统中,每一份接收者程序的拷贝都能收到消息,因此我们可以轻易地使用一个程序将日志写入磁盘,
原文链接如何在 Golang 中使用 Redis 订阅/发布订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅订阅订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
转载 2023-06-01 14:48:01
377阅读
Redis 是一个高性能的内存数据结构存储,它广泛应用于缓存、实时数据处理以及消息队列等场景。在众多编程语言中,Go(Golang)因其高并发能力和简洁的语法近年来受到了很大的欢迎。本文将围绕 Redis 的发布/订阅功能与 Go 的结合展开,详细解析其协议背景、抓包方法、报文结构、交互过程、性能优化和安全分析。 ### 协议背景 Redis 的发布/订阅功能允许客户端之间实时传递消息,形成一
原创 7月前
19阅读
背景:redis集群执行lua脚本时不同于单机情况,lua脚本在执行时需要确保key在同一个node节点上,换句话说也就是需要保证 slot=crc16%16384,通过对key进行hash运算,其slot会分布在同一个node节点所属范围。解决思路:为了使key都落在一个node节点上可以通过添加 {} hashTag来实现。原理:相同的hashtag被分配到相同的节点,相同的槽。 hash算法
转载 2023-05-25 11:22:06
224阅读
# 使用Golang订阅Redis消息 Redis是一个基于内存的数据存储系统,它支持多种数据结构,如字符串、哈希、列表、集合等。在实际开发中,我们经常会使用Redis来做数据缓存、消息队列等功能。本文将介绍如何使用Golang订阅Redis消息,实现消息的发布与订阅功能。 ## Redis发布与订阅 Redis提供了发布与订阅功能,发布者通过`PUBLISH`命令将消息发布到指定的频道,
原创 2024-04-11 04:02:06
134阅读
# Golang Redis 订阅者 在分布式系统中,消息队列的使用是非常普遍的。而 Redis 作为一种高性能的 key-value 存储系统,在消息队列中也有着重要的作用。在 Redis 中,我们可以通过发布-订阅模式来实现消息的传递,其中发布者将消息发送到指定的频道,而订阅者则可以订阅这些频道以接收消息。 在本文中,我们将介绍如何使用 Golang 编写一个 Redis 订阅者,来接收并
原创 2024-03-20 04:09:05
46阅读
# Golang Redis发布订阅 ## 简介 Redis是一种高性能的键值缓存数据库,而发布订阅(Pub/Sub)是Redis提供的一种消息传递机制。本文将介绍如何使用GolangRedis进行发布订阅。 ## 什么是发布订阅 发布订阅模式是一种消息传递模式,它包括两个角色:发布者和订阅者。发布者将消息发布到指定的频道,而订阅者则可以订阅一个或多个频道并接收发布者发布的消息。 发布
原创 2023-09-12 15:44:22
214阅读
# 订阅Redis变化:实时监控数据变化 在许多应用程序中,我们需要实时监控数据的变化,以便及时做出响应。例如,社交应用需要实时更新好友的在线状态,电商平台需要实时更新商品的库存信息。在这种情况下,我们可以使用Redis的发布/订阅功能来实现数据的实时监控。 ## 什么是Redis发布/订阅Redis的发布/订阅是一种消息通信模式,允许应用程序订阅特定的消息通道,并在有新消息发布到这些
原创 2024-07-21 09:19:48
24阅读
一、背景 业务中经常会有这样的场景: 到期后自动执行指定操作; 查询某个任务是否完成,未完成等待一定时间再次查询; 回调通知,当回调失败时,等待后重试;等等还有其他很多类似的场景。 很多时候我们会直接通过一个本地定时器来帮我们完成这个任务。如果我们的系统是多实例分布式的,本地定时器就会面临很多问题,如:怎么保证重复处理的问题;统一管控的问题等等。面
转载 2023-06-05 15:38:19
167阅读
配置文件网络配置port : 6379 默认 指定redis所使用的端口bind 配置客户端连接redis服务时,所能使用的redis服务 默认redis所在主机的网卡上任意一个IP地址redis-server redis.conf & (服务端)redis-cli -h hostlocal -p port [shutdow] (客户端)(打开和关闭都需要端口号和IP地址)tcp-keep
# 使用Golang Redis实现订阅者消费 ## 介绍 在本文中,我们将讨论如何使用GolangRedis实现订阅者消费。我们将使用Redis的发布-订阅模式来实现这个功能。订阅者消费是指一个订阅者从Redis的发布-订阅频道中消费消息。我们将逐步介绍整个流程,并提供相应的代码示例,以确保您能够正确理解和实现该功能。 ## 整体流程 下面是实现"golang redis 订阅者消费"
原创 2023-11-19 06:54:42
86阅读
# 如何实现golang Redis订阅过期事件 ## 整体流程 为了实现golang Redis订阅过期事件,我们可以按照以下步骤进行操作: ```mermaid pie title golang Redis订阅过期事件流程 "订阅过期事件" : 40 "处理过期事件" : 30 "其他操作" : 30 ``` ```mermaid gantt t
原创 2024-07-13 04:41:28
33阅读
# 订阅所有数据变化的实现及原理 Redis是一款高性能的键值存储系统,广泛应用于缓存、消息队列等场景。在实际开发中,我们经常需要实时监控数据的变化情况,以便及时做出相应处理。本文将介绍如何在Redis订阅所有数据的变化,并通过代码示例演示其实现方法及原理。 ## Redis发布订阅功能简介 Redis的发布订阅功能是一种消息通信模式,可以用于实现消息的广播和消息的订阅。在这种模式下,消息
原创 2024-05-05 05:38:01
112阅读
# golang 使用redis实现发布订阅 ## 前言 在现代的分布式系统中,发布订阅模式是一种常见的消息传递机制。它允许消息的发布者将消息发送到多个订阅者,从而实现了解耦和可扩展性。而Redis作为一个高性能的内存数据库,也提供了发布订阅功能。本文将介绍如何使用Golang编写代码来实现Redis的发布订阅功能。 ## Redis的发布订阅模式 在Redis中,发布订阅模式由两个主要组件组
原创 2023-09-12 05:38:55
394阅读
Golang 入门系列(七)Redis的使用安装 1. Redis 的安装很简单,我这里测试直接用的是windows 的版本。如何安装就不细说了。想了解的可以看之前的文章:   2. golang 客户端,用的是 go-redis,   1.   go get github.com/go-redis     &nbsp
文章目录1 安装2 创建客户端3 String 操作4 list 操作5 set 操作6 hash 操作7 关于连接池 1 安装go get gopkg.in/redis.v4import "gopkg.in/redis.v4"2 创建客户端通过 redis.NewClient 函数即可创建一个 redis 客户端, 这个方法接收一个 redis.Options 对象参数, 通过这个参数, 我们
转载 2023-08-23 18:58:04
66阅读
# Golang Redis 订阅发布的实际应用 ## 1. 介绍 Redis 是一个开源的内存数据库,提供了键值存储、发布/订阅、持久化、集群等功能。Golang 是一种高效的编程语言,结合 Redis订阅发布功能,可以实现高效的消息传递系统。本文将介绍如何使用 GolangRedis 实现订阅发布的功能,并展示一个实际的应用场景。 ## 2. 订阅发布功能 Redis订阅
原创 2024-02-29 06:34:23
61阅读
一、Redis事物1. 概念  Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:    事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。    事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。  一个事务从开始到执行会经历以下三个阶段:开始事务。    命令入队。    执行事务。
转载 2024-06-18 21:02:41
68阅读
Context简介:     Context由Google官方开发,在1.7版本引入, 在Go服务器程序中,每个请求都会有一个goroutine去处理。然而,处理程序往往还需要创建额外的goroutine去访问后端资源,比如数据库、RPC服务等。由于这些goroutine都是在处理同一个请求,所以它们往往需要访问一些共享的资源,比如用户身份信息、认证
  • 1
  • 2
  • 3
  • 4
  • 5