目录
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
,
重新打开终端运行