some-mmorpg
some-mmorpg copied to clipboard
关于数据库的设计
最近在尝试使用skynet。参考你的some-mmorpg的实现,有不少收获。good jobs~ 有些redis数据库方面的疑问,请教下,在保存char_list等数据时,你都转换成了json的数据进行保存。这样做的意义在哪里?为了效率还是空间? 为何不是直接用hash、set、list等redis数据结构来存储这些数据。 如: account对应的角色列表:设计成一个list或set字段呢? 而角色的基本信息,则可以设计成一个hash,分布存储他的name,class,race等信息?
首先说一句,我是redis新手,我对redis的理解主要来源于官方文档。在some-mmorpg中的数据结构设计,主要是基于下面这两篇文档: http://redis.io/topics/memory-optimization http://redis.io/topics/partitioning
那么,回答第一个问题,这样设计的意义在于节省内存。官方给的数据,优化前后的内存使用值是11 MB :1.7 MB,相当惊人。 后面的问题就简单了,因为不能。使用内存优化的储存方法后,必须要把一个table打包后才能储存进去,所以我将table转成了一个json字符串。