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

目录

环境安装

sudo apt-get install redis-server

先启动redis服务

bash 复制代码
/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

bash 复制代码
/etc/init.d/redis-server start

启动nginx

nginx启动需要root权限

然后用netstat -tanp查看一下端口,8000和6379全部打开了

然后打开两个客户端两个服务器

一登录就报段错误

修改了一下redis.cpp

而且都已经连上redis

咋没收到消息

感觉onechat出问题了

不需要这个标识在线了

只能在单台服务器通信,不能跨服务器通信

调试了一下我发现已经接收到了,但是没有打印出来

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

相关推荐
无限进步_33 分钟前
【Linux】gcc/g++ 编译:从源码到可执行文件的四个阶段
linux·运维·服务器
難釋懷8 小时前
Redis数据结构-Set结构
数据结构·redis·bootstrap
DianSan_ERP8 小时前
如何通过抖店订单接口实现订单状态管理与履约自动化?
运维·自动化
b***25119 小时前
18650电池点焊机:电阻焊技术如何决定电池组的成败|深圳比斯特自动化
运维·自动化
原来是猿9 小时前
网络计算器:理解序列化与反序列化(中)
linux·运维·服务器·网络·tcp/ip
前端老曹9 小时前
Docker 从入门到放弃:完整指南
运维·docker·容器
AOwhisky10 小时前
虚拟化技术学习笔记
linux·运维·笔记·学习·虚拟化技术
秋漓10 小时前
Redis学习笔记
redis
rabbit_pro11 小时前
Docker compose部署Ollama使用模型
linux·运维·docker