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.游戲業務實現總結

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80095.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

db中查詢關于null的sql該怎么寫

正確示例 # 等于null select * from 表名 where 字段名 is NULL; # 不等于null select * from 表名 where 字段名 is not NULL;若需要同時判斷字段不等于某個值且不為null select * from users where age ! 30 and age is not null; select * from users where age ! 30 or a…

從“堆料競賽”到“體驗深耕”,X200 Ultra和X200s打響手機價值升維戰

出品 | 何璽 排版 | 葉媛 vivo雙旗艦來襲&#xff01; 4月21日&#xff0c;vivo X系列春季新品發布會盛大開啟&#xff0c;帶來了一場科技與創新的盛宴。會上&#xff0c;消費者期待已久的X200 Ultra及X200s兩款旗艦新品正式發布。 vivo兩款旗艦新品發布后&#xff0c;其打破…

多模態大語言模型arxiv論文略讀(三十二)

Proximity QA: Unleashing the Power of Multi-Modal Large Language Models for Spatial Proximity Analysis ?? 論文標題&#xff1a;Proximity QA: Unleashing the Power of Multi-Modal Large Language Models for Spatial Proximity Analysis ?? 論文作者&#xff1a…

基于貝葉斯優化的Transformer多輸入單輸出回歸預測模型Bayes-Transformer【MATLAB】

Bayes-Transformer 在機器學習和深度學習領域&#xff0c;Transformer模型已經廣泛應用于自然語言處理、圖像識別、時間序列預測等多個領域。然而&#xff0c;在一些實際應用中&#xff0c;我們面臨著如何高效地優化模型超參數的問題。貝葉斯優化&#xff08;Bayesian Optimiz…

Ruby 正則表達式

Ruby 正則表達式 引言 正則表達式&#xff08;Regular Expression&#xff0c;簡稱Regex&#xff09;是一種強大的文本處理工具&#xff0c;在編程和數據處理中有著廣泛的應用。Ruby 作為一種動態、靈活的編程語言&#xff0c;同樣內置了強大的正則表達式功能。本文將詳細介紹…

kubernetes》》k8s》》刪除命名空間

使用 kubectl delete ns 命名空間 --force --grace-period0 如果還刪除不掉 需要 kubectl get namespace 命名空間 -o json > x.json vim x.json kubectl replace --raw “/api/v1/namespaces/命名空間/finalize” -f ./x.json

玩轉Docker | 使用Docker部署DashMachine個人書簽工具

玩轉Docker | 使用Docker部署DashMachine個人書簽工具 前言一、DashMachine介紹DashMachine簡介DashMachine使用場景二、系統要求環境要求環境檢查Docker版本檢查檢查操作系統版本三、部署DashMachine服務下載鏡像創建容器創建容器檢查容器狀態檢查服務端口安全設置四、訪問Das…

SQL進階知識:一、高級查詢

今天介紹下關于高級查詢的詳細介紹&#xff0c;包括子查詢、連接查詢、分組查詢等&#xff0c;并結合MySQL數據庫提供實際例子。 一、子查詢&#xff08;Subqueries&#xff09; 子查詢是嵌套在另一個查詢中的查詢語句&#xff0c;通常用于提供條件過濾、生成臨時數據集等。子…

【Git】Git Revert 命令詳解

Git Revert 命令詳解 1. Git Revert 的基本概念 Git Revert 是一個用于撤銷特定提交的命令。與 Git Reset 不同&#xff0c;Git Revert 不會更改提交歷史&#xff0c;而是會創建一個新的提交來撤銷指定提交的更改。這意味著&#xff0c;使用 Git Revert 后&#xff0c;項目的…

華為S系列交換機CPU占用率高問題排查與解決方案

問題概述 在華為S系列交換機(V100&V200版本)運行過程中&#xff0c;CPU占用率過高是一個常見問題&#xff0c;可能導致設備性能下降甚至業務中斷。根據華為官方維護寶典&#xff0c;導致CPU占用率高的主要原因可分為四大類&#xff1a;網絡攻擊、網絡震蕩、網絡環路和硬件…

招募隊員問題

#include <bits/stdc.h> using namespace std;int main() {int n;cin >> n; // 輸入隊伍人數&#xff08;行數&#xff09;vector<int> maxx(5, 0); // 用于記錄每個數字&#xff08;1~5&#xff09;出現的最大連續段長度// 定義二維數組 team&#xff0c;n …

2025.04.19react面試題

以下是整理的 20 道 React 面試題&#xff0c;涵蓋基礎、進階和實戰應用&#xff0c;適用于社招或內推準備&#xff1a; 一、React 基礎&#xff08;適合初中級&#xff09; React 中的組件有哪幾種&#xff1f;它們有什么區別&#xff1f; 什么是 JSX&#xff1f;它與 HTML 有…

Python爬蟲從入門到實戰詳細版教程Char01:爬蟲基礎與核心技術

1.1 什么是網絡爬蟲? 1.1.1 定義與分類 網絡爬蟲:互聯網世界的“信息捕手” 網絡爬蟲(Web Crawler),又稱網絡蜘蛛或網絡機器人,是一種通過預設規則自動訪問網頁、提取數據的程序系統。從技術視角看,其核心任務是通過模擬瀏覽器行為向目標服務器發起請求,解析網頁內容…

Python爬蟲實戰:獲取xie程網近兩周長沙飛敦煌機票數據,為51出行做參考

一、引言 1.1 研究背景 伴隨互聯網技術的迅猛發展與人們生活水平的顯著提升,在線旅游平臺成為人們出行預訂的重要途徑。其中,飛機作為高效快捷的長途出行方式備受青睞。xie程網作為國內領先的在線旅游平臺,匯聚了豐富的機票信息。對于計劃在 51 出行期間從長沙飛往敦煌的旅…

Mujoco robosuite 機器人模型

import ctypes import os# 獲取當前腳本所在的目錄 script_dir os.path.dirname(os.path.abspath(__file__))# 構建庫文件的相對路徑 lib_relative_path os.path.join(dynamic_models, UR5e, Jb.so)# 拼接成完整的路徑 lib_path os.path.join(script_dir, lib_relative_path…

【重學Android】02.Java環境配置的一些分享

背景說明 其實只是學習Android的話&#xff0c;只要下載好Android Studio開發工具&#xff0c;是自帶JDK環境的&#xff0c;所以不需要再額外去進行配置&#xff0c;我之所以還要進行單獨配置&#xff0c;是因為我其他的工具需要Java的環境&#xff0c;而且我目前用的是JDK 12…

Linux 網絡編程:select、poll 與 epoll 深度解析 —— 從基礎到高并發實戰

一、IO 多路復用&#xff1a;解決并發 IO 的核心技術 在網絡編程中&#xff0c;當需要同時處理大量客戶端連接時&#xff0c;傳統阻塞式 IO 會導致程序卡在單個操作上&#xff0c;造成資源浪費。IO 多路復用技術允許單線程監聽多個文件描述符&#xff08;FD&#xff09;&#…

制作你的時間管理“局”#自制軟件,5款AI編程對比測試

玩 AI 編程最有意思的地方&#xff0c;就是當你有想法的時候&#xff0c;可以隨時測試、把想法具體化&#xff0c;甚至產品化。今天我們制作一個事件管理器&#xff0c;用來量化我們每天的時間安排&#xff0c;提高時間的利用率&#xff0c;提升生產力。 同樣的一組 prompt &am…

大數據系列 | 詳解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署--完結

大數據系列 | 詳解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署 1. ClickHouse與MySQL的區別2. 在群集的所有機器上安裝ClickHouse服務端2.1. 在線安裝clickhouse2.2. 離線安裝clickhouse 3. ClickHouse Keeper/Zookeeper集群安裝4. 在配置文件中設置集群配置5. 在每…

宏碁筆記本電腦怎樣開啟/關閉觸摸板

使用快捷鍵&#xff1a;大多數宏碁筆記本可以使用 “FnF7” 或 “FnF8” 組合鍵來開啟或關閉觸摸板&#xff0c;部分型號可能是 “FnF2”“FnF9” 等。如果不確定&#xff0c;可以查看鍵盤上的功能鍵圖標&#xff0c;一般有觸摸板圖案的按鍵就是觸摸板的快捷鍵。通過設備管理器…