专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Redis分布式事件

Redis分布式事件

更新时间:2022-02-15 09:22:38 来源:赢咖4 浏览752次

Redis 的 Pub/Sub 消息传递可以扩展以创建有趣的分布式事件。假设我们有一个存储在散列中的结构,但我们只想在特定字段超过订阅者定义的数值时更新它的客户端。我们将监听通道模式,然后才在status处获取哈希。在本例中,我们只对介于 5 和 9 之间的 update_status 感兴趣。

> PSUBSCRIBE update_status:[5-9] 
1) "psubscribe" 
2) "update_status:[5-9]" 
3) (整数) 1 
[等待]

要更改status/error_level的值,我们将有一个子例程按顺序或在MULTI/EXEC 块中运行两个命令。第一个命令设置级别,第二个命令发布通知,其值编码在通道本身中。

> HSET状态 error_level 5 
(integer) 1 
> PUBLISH update_status:5 0 
(integer) 1

当收到消息时,我们的客户端应用程序切换到备用客户端并发出HGETALL命令:

> HGETALL 状态
1) “error_level” 
2) “5” 
3) “last_error” 
4) “Crawler 返回 404” 
5) “timestamp” 
6) “1511467605734”

然后,我们可以使用它来更新长时间运行进程的局部变量。这可以允许同一进程的多个实例以实时方式“共享”数据。

与仅使用 Pub/Sub 相比,这种模式的好处在于,当进程重新启动时,它可以简单地获取整个状态Redis哈希并开始侦听。然后,这些更改将在任意数量的进程中同步。如果实例与 Redis 服务器断开连接,作为重新连接的一部分,服务器可以获取状态哈希并重新开始侦听。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>