socket数据存储方面的问题

cwk44 2014-03-19 01:12:08
目前用html5的websocket和php实现了socket连接,准备做个长连接的游戏,
准备做成一个服务器支持100玩家左右(上线后再尝试增加人数),一个房间/一局游戏5-8人。

现在有一个问题,当前游戏数据存在哪里好呢。(游戏结果数据会存到数据库,主要是游戏中间数据存哪)
全局变量:
存储在全局变量肯定可以实现的,性能是最好的,
但如果进程挂了,当前的游戏数据数就全部消失了,所有玩家都都得从游戏大厅重新开始
redis:
存redis是比较安全,进程挂了的话进程重启后玩家应该能继续该局游戏,
但是性能上肯定比全局变量差,不知道有没有必要这么设计。
(目前只准备租一个服务器,不知道redis会不会一起挂掉)

主要是不知道进程挂掉的概率有多大,还有使用redis对性能的影响有多大。
有没有之前做过这方面功能的传授一下这方面的经验。
...全文
249 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwk44 2014-03-25
  • 打赏
  • 举报
回复
没人回答,自己想了个折中的方案: 游戏先用全局变量实现,redis作为防挂扩展功能,游戏上线后确认了服务器会挂,确实有必要后再实现。 实现方式: 1.同步方案:将每个房间的还原需要的数据单独拼接在一起,单独存入redis一个字段(名为 'room_'.$roomId) 2.同步时间:1.游戏开始时存放初始信息 2.游戏结束时清除信息 3.游戏每进行一个回合存放一次数据 3.还原方案:进程启动后,读取redis各房间数据存入全局变量。 总之现在先用全局变量实现再说...
cwk44 2014-03-20
  • 打赏
  • 举报
回复
不要掉啊!自己顶下!
可爱的小灵儿 2014-03-19
  • 打赏
  • 举报
回复
期待楼主经验。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧