首先需要了解Redis、Session、数据库的区别,首先Redis、Session的数据初始化是在玩家上线的时候通过UserDB查询的数据库得到的,之后数据会一直存在,直到玩家下线,玩家下线Session会立刻被清除,但Redis会在玩家下线半小时左右再清除,而数据库的作用是永久保存玩家信息
然后需要了解GatwayWork后端架构,
然后再通过这个图说一下Redis、Session、数据库的区别,看着这张图,从左到右,Client上线发送连接请求,发送给Gateway,Gateway把数据转发给Worker进程,Worker进程中还分start、event、server等,start是启动后端是服务器时运行的启动项,event是接收到Gateway发来的数据的时候往数据里面添加Session,用于让server对数据做处理时知道当前的这个连接来自于哪个Client,server的作用就简单明确了,就是对客户端client发送的请求对接的,比如client想购买一个东西,发送一个购买命令,到server时,server确定能不能购买,金币够不够,一系列检测后,返回给客户端client说,购买成功或购买失败这个样子,最后说一下Redis的存在,Redis存在相对独立的唯一的,这是我的理解,同事说Redis就像是:客户端对接第三方登录,比方说微信登录,客户端会向微信后台请求该用户的数据会发送给微信后台一个命令,微信接收到会把用户数据返回过来。Redis就相当于微信后台存储了上线玩家的所有信息。
网友评论