本文内容源自腾讯游戏学院程序公开课_服务器第四节数据库
运行数据保存到硬盘上造成持久化数据。缓存
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——>磁带。