本文內容源自騰訊遊戲學院程序公開課_服務器第四節數據庫
運行數據保存到硬盤上造成持久化數據。緩存
data——>file(database)——>file system——>hard driver服務器
數據變爲文件,存入文件系統,文件系統經過OS這一層落到硬盤上面。數據結構
數據庫表設計與範式架構
優勢性能
問題設計
NoSQL數據庫特色版本控制
優勢日誌
問題blog
響應速度要求很是高
數據更新頻率高
解決方案
Player 1——>Game Server 1——>Database 1
Player 2——>Game Server 2——>Database 1
Player 3——>Game Server 3——>Database 1
每一個玩家能夠選擇不一樣的服務器進行遊戲,每一個服務器後面的存儲都是相互獨立的,這樣每一個服務器的存儲壓力也會變得比較小。
Player 1——>Game Server Cluster——>Database
Player 2——>Game Server Cluster——>Database
Player 3——>Game Server Cluster——>Database
分區分服存儲特色——>選擇 RDBM(關係型數據庫)
全區全服存儲特色——>選擇 NoSQL
使用MySQL做爲遊戲數據庫
軟件工程思想:分離穩定和不穩定
穩定,使用MySQL表字段,例如:NAME、職業、角色的性別、等級;
不穩定,打包放入GAMEBLOB裏面,再經過DR技術進行版本控制和管理,例如:道具、學會的技能;
混合式存儲設計
REDIS高速緩存,MySQL真實落地。
Player——>Game Server 1(Player Runtime Data)<——(load)DB
遊戲存盤需求特色:update > read > insert > delete
按期自動存盤:3分鐘自動存盤
重要操做即時存盤:升級/下線/關服;得到高價值道具
存儲緩衝隊列:削峯填谷
熱備:主從熱備,自動切換
冷備:每日全量備份;關鍵操做前全量備份
注:此模型較簡單,真正設計時會比這個複雜的多。
什麼是運營日誌?
運營日誌的用途有哪些?
運營日誌的存儲
存儲流程:Game Server——>Database——>磁帶。