集群聊天服务器(13)redis环境安装和发布订阅命令

news2025/1/13 17:40:02

目录

  • 环境安装
  • 订阅
  • redis发布-订阅的客户端编程
    • 环境配置
    • 客户端编程
  • 功能测试

环境安装

sudo apt-get install redis-server
在这里插入图片描述
先启动redis服务

/etc/init.d/redis-server start

默认在6379端口上
在这里插入图片描述
redis是存键值对的,还可以存链表、数组等等复杂数据结构
而且数据是在内存上存储的,效率非常高

订阅

订阅了一个13
在这里插入图片描述
在这里插入图片描述
订阅通道号以及发布消息

redis发布-订阅的客户端编程

环境配置

C++对应的则是hiredis
https://github.com/redis/hiredis
github上下载压缩包传到ubuntu中,然后make
sudo make install
在这里插入图片描述
然后把动态库拷贝到lib目录下
在这里插入图片描述

客户端编程

上报就是一个通道加上字符串(具体内容)
在这里插入图片描述
头文件那里一直找不到,反复搞json配置文件
在这里插入图片描述
后来发现是连接延迟
然后重启了一下vscode,就不报错了
登录成功就订阅id作为channel

在这里插入图片描述
注销就取消订阅

在这里插入图片描述
异常退出也取消订阅
在这里插入图片描述
如果用户不在本地服务器上在线,那就发布到redis上对应的用户idchannel上,由订阅的接收,群组聊天也是这个流程在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

功能测试

先启动redis

/etc/init.d/redis-server start

启动nginx
nginx启动需要root权限
在这里插入图片描述
然后用netstat -tanp查看一下端口,8000和6379全部打开了
在这里插入图片描述

然后打开两个客户端两个服务器
在这里插入图片描述
在这里插入图片描述
一登录就报段错误
修改了一下redis.cpp
在这里插入图片描述
而且都已经连上redis
在这里插入图片描述
咋没收到消息在这里插入图片描述
感觉onechat出问题了
在这里插入图片描述
不需要这个标识在线了
在这里插入图片描述
只能在单台服务器通信,不能跨服务器通信
在这里插入图片描述
调试了一下我发现已经接收到了,但是没有打印出来
在这里插入图片描述

其实两边都收到消息了,但是没有在shell中打出来,没有接收到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 集成 Sharding-JDBC(一):数据分片

在深入探讨 Sharding-JDBC 之前,建议读者先了解数据库分库分表的基本概念和应用场景。如果您还没有阅读过相关的内容,可以先阅读我们之前的文章: 关系型数据库海量数据存储策略-CSDN博客 这篇文章将帮助您更好地理解分库分表的基本原理和实现…

芋道启用undertown

芋道使用的是tomcat, 可以替换为性能更好的undertown 1.maven配置 1.1在yudao-dependencies模块下yudao-spring-boot-starter-web 和yudao-spring-boot-starter-websocket排除spring-boot-starter-tomcat 添加 <exclusions><exclusion><groupId>org.spring…

(Linux 入门) 基本指令、基本权限

目录 一、什么是操作系统 二、基础指令 01. ls 指令 02. pwd命令 03.mkdir 04. touch指令 05.rmdir指令 && rm 指令 06.man指令&#xff08;重要&#xff09; 07 cat 08.cp指令 09 mv指令 10 alias 指令 11.more指令 12.head指令 13.less指令 14.时间相…

贴代码框架PasteForm特性介绍之select,selects,lselect和reload

简介 PasteForm是贴代码推出的 “新一代CRUD” &#xff0c;基于ABPvNext&#xff0c;目的是通过对Dto的特性的标注&#xff0c;从而实现管理端的统一UI&#xff0c;借助于配套的PasteBuilder代码生成器&#xff0c;你可以快速的为自己的项目构建后台管理端&#xff01;目前管…

【AI+教育】一些记录@2024.11.16

《万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题》 万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题关于 ChatGPT 铺天盖地的信息让人无所适从。本文则试图提炼出五个关键问题&#xff1a;如何理解这次范式突破&#xff0c;未来能达到的技术天花板&#xff0c;行…

基于vue框架的的图书在线销售系统设计2503xPC端(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,图书分类,图书信息,入库信息 开题报告内容 基于Vue框架的图书在线销售系统设计开题报告 一、研究背景与意义 随着互联网技术的不断发展和普及&#xff0c;电子商务已成为现代商业的重要组成部分。图书作为知识和文化的载体&#…

android:taskAffinity 对Activity退出时跳转的影响

android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中&#xff0c;任务栈&#xff08;Task&#xff09;是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…

Android15之解决:Dex checksum does not match for dex:framework.jar问题(二百三十九)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

SpringBoot(7)-Swagger

目录 一、是什么 二、SpringBoot集成Swagger 三、配置Swagger 3.1 配置文档信息 3.2 配置扫描接口 3.3 配置Swagger开关 3.4 配置API分组 3.5 实体配置 四、常用注解 五、总结 一、是什么 是一款API框架&#xff0c;API文档和API定义同步更新&#xff0c;可以在线测…

小程序19-微信小程序的样式和组件介绍

在小程序中不能使用 HTML 标签&#xff0c;也就没有 DOM 和 BOM&#xff0c;CSS 也仅支持部分选择器 小程序提供了 WXML 进行页面结构的编写&#xff0c;WXSS 进行页面的样式编写 WXML 提供了 view、text、image、navigator等标签构建页面结构&#xff0c;小程序中标签称为组件…

[Admin] Dashboard Filter for Mix Report Types

Background RevOps team has built a dashboard for sales team to track team members’ performance, but they’re blocked by how to provide a manager view based on sales’ hierarchy. Therefore, they seek for dev team’s help to clear their blocker. From foll…

基于AIRTEST和Jmeter、Postman的自动化测试框架

基于目前项目和团队技术升级&#xff0c;采用了UI自动化和接口自动化联动数据&#xff0c;进行相关测试活动&#xff0c;获得更好的测试质量和测试结果。

使用 Azure OpenAI 服务对数据进行联合 SharePoint 搜索

作者&#xff1a;来自 Elastic Gustavo Llermaly 使用 Azure OpenAI 服务处理你的数据&#xff0c;并使用 Elastic 作为向量数据库。 在本文中&#xff0c;我们将探索 Azure OpenAI 服务 “On Your Data”&#xff0c;使用 Elasticsearch 作为数据源。我们将使用 Elastic Shar…

Linux 入门——基本指令1

目录 一背景知识的简介 二 入门相关指令的使用 一.背景知识的简介 1.认识 Linux &#xff0c;了解Linux 的相关背景 其实Linux 是从 Unix 发展而来的。 Linux&#xff0c;一般指GNU/Linux&#xff08;单独的Linux内核并不可直接使用&#xff0c;一般搭配GNU套件&#xff0…

RabbitMQ消息可靠性保证机制4--消费端限流

7.7 消费端限流 在类似如秒杀活动中&#xff0c;一开始会有大量并发写请求到达服务端&#xff0c;城机对消息进行削峰处理&#xff0c;如何做&#xff1f; 当消息投递的速度远快于消费的速度时&#xff0c;随着时间积累就会出现“消息积压”。消息中间件本身是具备一定的缓冲…

抽象java入门1.5.3.2——类的进阶(中)

前期回顾&#xff1a;抽象java入门1.5.3.1——类的进阶https://blog.csdn.net/c_yanxin_ru/article/details/140858898?spm1001.2014.3001.5501 总结&#xff1a; 在代码溯源中&#xff0c;我发现了一个奇怪的东西&#xff0c;就是OUT不是类中类&#xff08;不是常规类的写法…

题解 洛谷 Luogu P1873 [COCI 2011/2012 #5] EKO / 砍树 二分答案 C/C++

题目传送门&#xff1a; P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/problem/P1873思路&#xff1a; 很简单的二分答案 每次找区间中点 m&#xff0c;判断以 m 为高度砍下的木头是否够 h 即可 代码&#xff1a; #defin…

蓝桥杯第22场小白入门赛2~5题

这场比赛开打第二题就理解错意思了&#xff0c;还以为只能用3个消除和5个消除其中一种呢&#xff0c;结果就是死活a不过去&#xff0c;第三题根本读不懂题意&#xff0c;这蓝桥杯的题面我只能说出的是一言难尽啊。。第四题写出来一点但是后来知道是错了&#xff0c;不会正解&am…

PyQt天天酷跑游戏(附下载地址)

欢迎下载体验&#xff01; 文件大小&#xff1a;25.7 M 下载地址&#xff1a;链接&#xff1a;https://wwrr.lanzoul.com/ifOvc2fe163c 观看演示视频~ Pyqt-跑酷游戏 一&#xff0e;前言 天天酷跑大家都玩过吧&#xff0c;这是我们学生时代的回忆&#xff0c;目前这款游戏还…

跨平台WPF框架Avalonia教程 十五

ListBox 列表框 列表框从元素源集合中显示多行元素&#xff0c;并允许选择单个或多个。 列表中的元素可以组合、绑定和模板化。 列表的高度会扩展以适应所有元素&#xff0c;除非特别设置&#xff08;使用高度属性&#xff09;&#xff0c;或由容器控件设置&#xff0c;例如…