swoole +mysql 开发游戏服务端

现在准备使用swoole开发游戏服务端,暂时不考虑其他语言,因为公司没有熟悉其他语言,而且项目截止时间马上要到
我想问的是,比如在开发服务端的时候,游戏上面有一个动作只有金币达到多少才能操作,这个server收到客户端的socket请求,判断金币,这个从数据库判断吗?前期预估tcp链接数大概有10w 如果直接从数据库判断感觉压力太大,另外我还需要保证数据完整性!如果真要这样做,数据库这块要一主多从,swoole里面的逻辑处理全部提交给task进程,处理完成之后推送到游戏客户端,,,这样我担心有延迟!

目前想采用办法是:
1:客户端sokcet链接服务器
2:游戏上的某个操作动作 commit一个动作
3:后端根据这个动作进行处理 逻辑判断
逻辑判断这块
从数据库查询相关的数据进行比对(比如用户的金币)如果失败那么直接推送给客户端一个消息
如果成功那么可能还要修改数据库 插入数据库一些相关的数据 ,最后推送给客户端成功的标识!!!!!
另外数据库查询这块想改动为 内存数据库比如使用 redis , 但是redis 和 mysql的数据同步也是个大的问题 , 就比如用户的金币这个 什么时候更新redis里面用户的金币数呢 ?? 还有redis的 key 那要设置为永远不过期了

请大家发表意见!谢谢

评论 (0)链接2018-04-05 

一般都是放到内存的。然后通过同步机制,定期持久化。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2018-06-05
德问是一个专业的编程问答社区,请 登录注册 后再提交答案