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

embedded/2024/11/19 16:48:10/

目录

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

环境安装

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

/etc/init.d/redis-server start

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

订阅

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

redis_18">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.ppmy.cn/embedded/138816.html

相关文章

Spring Data Redis常见操作总结

我列出来的都是最常用的&#xff0c;其他的你要自己去搜搜 1. 列表类型数据 Autowired private RedisTemplate<String ,Object> redisTemplate;public void f1() {String k "key";ListOperations<String, Object> list redisTemplate.opsForList();r…

为什么TikTok视频上传速度慢?专线网络与VPN的影响分析

TikTok已成为全球最受欢迎的短视频平台&#xff0c;用户不仅在上面观看内容&#xff0c;也经常进行视频创作与分享。然而&#xff0c;许多用户在上传视频时遇到上传速度缓慢、卡顿、超时等问题&#xff0c;这让上传自己精心制作的视频变得不那么顺利。除去视频文件大小、设备性…

使用 GoZero 实现读取绩效表格 Excel 并打分

以下是一个使用GoZero框架读取Excel并进行打分的简化示例。假设我们有一个Excel文件&#xff0c;其中第一列包含绩效数据&#xff0c;我们将根据这些数据给出打分。 首先&#xff0c;需要安装GoZero依赖&#xff1a; go get -u github.com/tal-tech/go-zero/tools/goctl 然后…

基于YOLOv8深度学习的智慧城市管理井盖状态检测系统(PyQt5界面+数据集+训练代码)

本研究设计并实现了一种基于YOLOv8深度学习的智慧城市管理井盖状态检测系统&#xff0c;旨在提高城市井盖管理的效率与安全性&#xff0c;减少因井盖缺失或损坏而可能带来的安全隐患。井盖作为城市基础设施的重要组成部分&#xff0c;其状态直接关系到行人和车辆的安全。传统的…

【分布式技术】分布式缓存技术-旁路缓存模式(Cache Aside Pattern)

旁路缓存模式介绍 概述1. 读取操作&#xff08;Read&#xff09;2. 写入操作&#xff08;Write&#xff09;3. 一致性问题4. 解决方案 适用于哪些场景&#xff1f;如何保证数据一致性&#xff1f;1. 延时双删策略具体是怎么工作的&#xff1f;写操作&#xff08;更新或删除数据…

CSS 样式的优先级?

在CSS中&#xff0c;样式的优先级决定了当多个样式规则应用于同一个元素时&#xff0c;哪个样式会被最终使用。以下是一些决定CSS样式优先级的规则&#xff1a; 就近原则&#xff1a; 最后应用在元素上的样式具有最高优先级。这意味着如果两个选择器都应用了相同的样式&#xf…

根据 Maven 的不同 profiles 来改变 Spring Boot 应用程序的配置

在 Maven 的 pom.xml 文件中&#xff0c;你可以定义多个 profiles&#xff0c;每个 profile 可以包含一组特定的配置属性。这些属性可以被传递到 Spring Boot 的 application.properties 或 application.yml 文件中&#xff0c;以便根据不同的环境&#xff08;如开发、测试、生…

机器学习3

六、朴素贝叶斯分类 背景知识&#xff1a;第三大点的第4点&#xff1a;概率 基础定义_数学概率中事件的定义-CSDN博客 1、条件概率 &#x1d443;(&#x1d434;|&#x1d435;)&#x1d443;(&#x1d434;∩&#x1d435;)/&#x1d443;(&#x1d435;) &#xff1a;A事件在…