some-mmorpg icon indicating copy to clipboard operation
some-mmorpg copied to clipboard

关于数据库的设计

Open yeehya opened this issue 9 years ago • 1 comments

最近在尝试使用skynet。参考你的some-mmorpg的实现,有不少收获。good jobs~ 有些redis数据库方面的疑问,请教下,在保存char_list等数据时,你都转换成了json的数据进行保存。这样做的意义在哪里?为了效率还是空间? 为何不是直接用hash、set、list等redis数据结构来存储这些数据。 如: account对应的角色列表:设计成一个list或set字段呢? 而角色的基本信息,则可以设计成一个hash,分布存储他的name,class,race等信息?

yeehya avatar May 25 '15 07:05 yeehya

首先说一句,我是redis新手,我对redis的理解主要来源于官方文档。在some-mmorpg中的数据结构设计,主要是基于下面这两篇文档: http://redis.io/topics/memory-optimization http://redis.io/topics/partitioning

那么,回答第一个问题,这样设计的意义在于节省内存。官方给的数据,优化前后的内存使用值是11 MB :1.7 MB,相当惊人。 后面的问题就简单了,因为不能。使用内存优化的储存方法后,必须要把一个table打包后才能储存进去,所以我将table转成了一个json字符串。

jintiao avatar May 25 '15 09:05 jintiao