目錄
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 , 重新打開終端運行