本文内容源自腾讯游戏学院程序公开课_服务器第四节
一、数据存储基础
什么是数据存储?
运行数据保存到硬盘上形成持久化数据。
data——>file(database)——>file system——>hard driver
数据变为文件,存入文件系统,文件系统通过OS这一层落到硬盘上面。
数据库 - 关系型数据库
数据库表设计与范式
1NF,2NF,3NF
优点
减少数据冗余
保证数据完整性
SQL语言提供了强大的查询功能
问题
数据结构复杂情况下表结构难以维护
性能一般,容易产生性能瓶颈
可扩展性较差
数据库 - NoSQL数据库
NoSQL数据库特点
Key - Value结构
支持结构化查询
优点
易于维护
性能较高
可扩展性好
问题
容易产生数据冗余
不支持SQL查询
二、游戏服务器架构与数据存储设计
游戏业务的特点
响应速度要求非常高
100ms以上的延迟玩家就会有感知
数据更新频率高
玩家数据每时每刻都在变化
获取经验,获取金钱,获取成就
update > read > insert > delete
解决方案
为了实现高速响应,玩家数据全部在内存中
在登录时从DB加载进内存
游戏过程中的数据变更通过操作内存数据完成
游戏服务器架构介绍