C++游戏服务器开发之⑦redis的使用

目录

1.当前进度

2.守护进程

3.进程监控

4.玩家姓名添加文件

5.文件删除玩家姓名

6.redis安装

7.redis存取命令

8.redis链表存取

9.redis程序结构

10.hiredisAPI使用

11.基于redis查找玩家姓名

12.MAKEFILE编写

13.游戏业务实现总结


1.当前进度

2.守护进程

3.进程监控

4.玩家姓名添加文件

5.文件删除玩家姓名

玩家全部退出后 20s 后服务器退出
创建定时任务: 20 秒周期,超时处理 -- 》退出框架
添加时机:玩家 fini 的时候若总玩家 ==1
摘除时机:玩家 init 的时候若总玩家 ==0
随机姓名池
线性表存姓和名组成的线性表
取名字:随机取姓,随机取名
还名字:尾部追加姓或名
读姓文件的同时读名文件,边追加节点

6.redis安装

守护进程
fork 关掉父进程
设置回话 ID
重定向 0 1 2
在 /proc/XXXX(pid)/fd/ 目录中可以查到当前进程打开的文件描述符

7.redis存取命令

进程监控
进入循环 ---fork
父进程, wait
子进程 -- 》 break

8.redis链表存取

需求:查看当前局游戏内有哪些玩家? 1. 创建文件( /tmp (存到内存的,重启会消失))存储当前游戏局的
玩家们的名字
2. 查询:显示文件内容
3. 设置:存姓名到文件或从文件中取姓名

  1. 存:追加的方式写文件
  2. 删:读出所有内容,将非自己的名字重写写入

9.redis程序结构

redis 命令( redis-cli XXXX
set key value: 存数据( value )
get key :显示数据
del key :删除一对数据
lpush , rpush 存链表节点
lrange 遍历
lrem 删除 n 个节点

10.hiredisAPI使用

redis 程序结构
cs 结构,数据放在服务进程的内存中
命令行客户端连接本地或远程地址访问
多种 API 可以访问: hiredis
程序结构简单,内部的数据结构和算法优秀

11.基于redis查找玩家姓名

hiredisAPI 使用
C 函数库,包含头文件 <hiredis/hiredis.h> , 编译时指定链接参数为 -
L/usr/local/lib -lhiredis
redisConnect 跟数据库建立链接( redisFree 释放掉)
redisCommand 发命令并通过返回值取出结果( freeReplyObject 释
放掉)
运行时若提示找不到共享库,则在 .bashrc 最末端添加一句 export
LD_LIBRARY_PATH=/usr/local/lib , 重新打开终端运行

12.MAKEFILE编写

13.游戏业务实现总结

相关推荐
草莓熊Lotso1 小时前
【Linux系统加餐】从原理到封装:基于建造者模式实现System V信号量工业级C++封装
android·linux·运维·服务器·网络·c++·建造者模式
kyle~8 小时前
机器视觉---熔池相机(穿透强光的视觉感知)
c++·数码相机·计算机视觉·机器人·焊接机器人
宏笋8 小时前
C++ Coroutines(协程) 详解
c++
wanhengidc8 小时前
私有云的作用都有哪些?
运维·服务器·网络·游戏·智能手机
王老师青少年编程9 小时前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:求区间和
c++·前缀和·csp·高频考点·信奥赛·求和区间和
kyle~9 小时前
机器人时间链路---工程流程示例
c++·3d·机器人·ros2
魔法阵维护师10 小时前
从零开发游戏需要学习的c#模块,第十六章(安装 MonoGame 并创建第一个窗口)
学习·游戏·c#·monogame
汉克老师11 小时前
GESP6级C++考试语法知识(十七、数据结构(三、认识队列 Queue))
数据结构·c++·队列·gesp6级·gesp六级·数组模拟队列
qq_2651533711 小时前
Redis在游戏服务器中怎么实现开合服数据同步?
服务器·redis·游戏·游戏服务器
qq_3692243312 小时前
Windows系统缺失ddraw.dll文件?游戏闪退、图形报错原因详解及处理办法
windows·游戏·dll·dll修复·dll丢失·dll错误