初学者,问一个内存数据安全的问题

nofastfat

wokerman中可以通过static将数据常驻在内存中,那么经gateway分发以后的worker在访问同一个static数据时(如常驻于内存的 棋牌游戏的所有房间信息),是否存在脏数据的隐患,希望各位大大不吝赐教。

3190 2 0
2个回答

walkor

每个进程都有自己的static数据,他们是完全分离的,某个进程static数据变化时不会同步数据给其它进程。

所以
1、经常变更的全局数据最好存储在mysql、redis等存储中,或者通过进程间通讯方法做实时数据同步。
2、不变更的数据可以一次全部载入赋值给static变量
3、偶尔变更的数据并且对及时性要求不高的场景(例如用户黑名单),可以用static变量存储,然后定时(例如1秒)从存储中读取最新数据。

  • 暂无评论
nofastfat

谢谢

  • 暂无评论
年代过于久远,无法发表回答
🔝