Redis查看订阅的模式串详细内容

2023-11-07

问题描述

pubsub channels可以查看Redis中被订阅的频道(channel):

在这里插入图片描述

pubsub numpat可以查看被订阅的模式(pattern)数量:

# redis-cli pubsub numpat
(integer) 3

问题:

除了查看被订阅模式的数量,我还需要获取每个订阅模式字符串的内容,怎么做 ?

解决方法

google没搜到现成的命令,决定自己修改redis-server源码,打印模式链表的内容,用时3~5分钟,需要了解:

  • Redis源码编译方法,参考官网或本人的博客

  • Redis服务器将所有模式的订阅信息保存在服务器状态的pubsub_patterns链表中。

具体操作

1、下载Redis源码(这里用的是6.0.9版本的源码,下载链接),修改pubsub.c,自定义一个模式链表打印函数myPubsubPatternsPrint,实现参考如下:

// pubsub.c
void myPubsubPatternsPrint()
{
    list *l = server.pubsub_patterns;
    listNode *cur = l->head;
    serverLog(LL_NOTICE, "[DEBUG] ALL PUBSUB PATTERNS: ");
    while (cur != NULL) {
        pubsubPattern *pp = (pubsubPattern *)(cur->value);
        robj *obj = pp->pattern;
        char *pattern = (char *)obj->ptr;
        serverLog(LL_NOTICE, "%s", pattern);
        cur = cur->next;
    }
}

2、重新编译并安装redis-server,后台gdb call一下自定义的打印函数myPubsubPatternsPrint得到模式链表的内容,如下图所示:
在这里插入图片描述

参考资料

【1】《Redis设计与实现》 第18章 发布与订阅

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

Redis查看订阅的模式串详细内容 的相关文章

  • Node.js 上通过套接字连接 Redis

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

    我正在寻找类似的东西BLPUSH该命令将阻塞 直到列表的长度低于指定值max size 目的是防止生产者运行速度快于消费者时列表无限增长 功能与 python 非常相似Queue put https docs python org 3 li
  • 仅当尚未设置时才进行原子设置

    仅当尚未在 Redis 中设置时 是否有办法执行原子设置 具体来说 我正在创建一个像 myapp user user email 这样的用户 并且希望 Redis 在 user email 已被占用时返回错误 而不是默默地替换旧值 比如声明
  • 如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话

    使用 的伟大答案 如何在microsoft azure上的django项目中配置celery redis https stackoverflow com questions 39616701 how to configure celery
  • 库存管理系统的 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
  • 在 sidekiq 上配置 redis 身份验证

    我想我错过了一些东西 因为我在文档中找不到如何编写 redis 实例的用户名和密码以与 sidekiq 一起使用 有没有办法做到这一点 或者是通过 ENV 变量 Sidekiq 将无法识别的 Redis 选项直接传递给 Redis 驱动程序
  • Redis SYNC 套接字上的错误情况:连接被拒绝

    在我的 django 应用程序中使用 celery 和 redis 一切都工作正常 直到我遇到了问题 redis 文件的位置已更改 redis 无法访问它们 经过查找 原来这是由于网络随机攻击造成的 需要添加confg 我添加文件后 一段时
  • 有没有办法在 ruby​​ 中重新定义 []=+

    我正在尝试编写一个简单的 DSL 针对 Redis 并且我想自己定义 I have def key val redis zadd name val key end 我想定义 def key val redis zincrby name va
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis
  • redis 2.8.7 Linux Sentinel环境配置问题,如何使其自启动,应该订阅什么?

    现在我们尝试使用 redis 2 8 7 作为缓存存储 来自使用 booksleeve 客户端的 NET Web 应用程序 目前看来这是一个非常有趣和令人兴奋的任务 redis 文档非常好 但由于缺乏真正的实践经验 我确实有几个关于如何正确
  • Spring Redis删除不删除key

    我正在尝试删除一个 Redis 键 但由于某种原因它没有删除 但也没有抛出异常 这是我要删除的代码 import com example service CustomerService import com example model Cu
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • 创建 C++ Redis 模块 - “不导出 RedisModule_OnLoad() 符号”

    我在加载 Redis 模块时遇到一些问题 我只是复制来自的示例https redis io topics modules intro https redis io topics modules intro 但我把它剥下来了 include
  • 如何使用 Redis 自动删除与模式匹配的键

    在我的 Redis DB 中 我有很多prefix
  • 如何延长 django-redis 中的缓存 ttl(生存时间)?

    我正在使用 django 1 5 4 和 django redis 3 7 1 我想延长缓存的 ttl 生存时间 当我取回它时 这是示例代码 from django core cache import cache foo cache get

随机推荐

  • 基于clickhouse做用户画像,标签圈选

    clickhouse在做用户画像标签时 怎么去做圈选 表结构应该是怎么样的 我们应该怎么去处理 能够使其高性能的圈选 尽可能缩小其占用的存储空间 这个问题 我通过代码给大家做下的演示 先在hive中对数据预处理 最初表结构 create t
  • python/pta 7-42 纵横

    7 42 纵横 莫大侠练成纵横剑法 走上了杀怪路 每次仅出一招 这次 他遇到了一个正方形区域 由n n个格子构成 每个格子 行号 列号都从1开始编号 中有若干个怪 莫大侠施展幻影步 抢占了一个格子 使出绝招 横扫四方 就把他上 下 左 右四
  • 眼底图像血管增强与分割--(4)基于自适应对比度增强算法实现

    在 http blog csdn net piaoxuezhong article details 78385517 中介绍的自适应对比度增强算法 其基本原理是将图像分为低频背景和高频细节两部分 算法选择高频部分进行增益放大 这样就增强了细
  • 修复“net::err_cert_authority_invalid”错误

    1 背景 在请求接口时接口报错net err cert authority invalid 当您的浏览器无法验证您网站的SSL证书的有效性时 就会出现此问题 如果您尚未设置证书或为您的网站使用HTTP 不推荐 则不应遇到此错误 2 解决办法
  • 利用Python子进程关闭Excel自动化过程出现的弹窗

    利用Python进行Excel自动化操作的过程中 尤其是涉及VBA时 可能遇到消息框 弹窗 MsgBox 此时需要人为响应 否则代码卡死直至超时 1 2 根本的解决方法是VBA代码中不要出现类似弹窗 但有时我们无权修改被操作的Excel文件
  • python多线程编程: 使用互斥锁同步线程

    由于每个线程互相独立 相互之间没有任何关系 你干你的 我干我的 互相不干扰 如果要几个线程同时干一件事怎么办 由于互相不走动 如果一个线程已经做过了 另一个线程再去做 不就重复了吗 很容易乱套 现在假设这样一个例子 有一个全局的计数num
  • 如何在windows使用valgrind_如何在windows下使用f2py

    什么是f2py f2py是一个将fortran或者c程序转化成python可以调用的库的工具 它几乎和numpy同时出现 使用也相对比较方便 因此一直在numpy包中 在早期 f2py起到的作用类似于numba 你可以将程序的主要逻辑交给p
  • 从在线字典网站获取词汇释义:一个Python爬虫实战案例

    目录 目录 1 准备工作 2 分析网页结构 3 编写爬虫 4 提取单词信息 5 输出结果
  • css 渐变实现loading

    div class loading div
  • 基于FPGA的MCP4725驱动程序

    基于FPGA的MCP4725驱动程序 芯片资料 MCP4725是低功耗 高精度 单通道的12位缓冲电压输出数模转换器 Digital to Analog Convertor DAC 具有非易失性存储器 EEPROM 用户可以使用I2C接口命
  • 【机器学习】逻辑回归

    1 逻辑回归基础理论 逻辑回归 Logistic regression 又叫对数几率回归 是一个分类模型 主要进行二分类 在线性回归的基础上进行一个sigmoid变换 于是得到逻辑回归模型 逻辑回归输出值在 0 1 之间 直观含义是y 1的
  • js中事件绑定3种方法以及事件委托

    事件绑定 首先 我先来介绍我们平时绑定事件的三种方法 1 嵌入dom
  • JavaScript图片转base64格式

    function changeBase64 var imgSrc share png 图片本地路劲 写自己本地图片地址 var image new Image image setAttribute crossOrigin anonymous
  • Docker Compose:Docker Compose部署nacos初始化MySQL

    Docker Compose Docker Compose部署nacos初始化MySQL 找初始化sql文件 nacos初始化mysql schema sql文件内容 docker compose yml 上传到挂载目录 运行docker
  • java常用工具类总结

    1 Java自带工具方法 1 1 List集合拼接成以逗号分隔的字符串 如何把list集合拼接成以逗号分隔的字符串 a b c List
  • 不安装oracle客户端,用plsql连接oracle

    首先安装32位和64位的Oracle客户端 在很多Oracle安装介绍中 都有提到设置2点 一 e 1 环境变量 NLS LANG SIMPLIFIED CHINESE CHINA ZHS16GBK 2 TNS ADMIN D app pr
  • 跨域问题Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin

    场景 前端跟后台联合开发的时候 在局域网内 浏览器访问别人的地址可以获取数据 但是通过接口请求 就会跨域 解决方法 现在是vue项目 用axios请求 前端这边单独解决这个问题 不需要后端处理 第一 找到config index js 设置
  • 蓝牙Mesh开发四 TLSR8258 ble mesh通信测评

    前言 TLSR是由泰凌微电子设计的一款低功耗蓝牙芯片 8258芯片方案已经支持SigMesh协议栈 符合BLE5 0协议规范 跑下Demo来做下SIG Mesh的测试 如有异议 欢迎留言指正 特性 32 Bit RISC V 处理器 最高主
  • 深度学习损失函数之——L1 L2 SmoothL1(范数、损失函数、正则化)

    L1 L2以及Smooth L1是深度学习中常见的3种损失函数 这3个损失函数有各自的优缺点和适用场景 首先给出各个损失函数的数学定义 假设 x x x 为预测值与Ground Truth之间的差值 L1 loss表示预测值和真实值之差的绝
  • Redis查看订阅的模式串详细内容

    问题描述 pubsub channels可以查看Redis中被订阅的频道 channel pubsub numpat可以查看被订阅的模式 pattern 数量 redis cli pubsub numpat integer 3 问题 除了查