关于配置表数据应该如何存放的问题

2019-06-04 15:45:59 +08:00
 imherer

手游项目,策划会给过来很多张配置表(几十到一百不等),每张表的大小从几个字节到上百 KB 不等,数据格式是 json

现在想在设计上如何来存放这些数据:

1.rds+redis

这样做的好处是配置表可以通过 GM 后台随时修改,做负载均衡也比较容易,缺点是大的配置表从 redis 读取出来再反序列化成对象性能上可能有问题(主要是数据量大的话比较耗时)

2.程序启动的时候将所有配置表读取出来挂载在一个全局的对象上

这样做性能上应该比 1 好,但是修改起来和做负载均衡的时候就比较麻烦了

这块应该如何做呢?

语言:golang

1240 次点击
所在节点    程序员
7 条回复
lihongjie0209
2019-06-04 15:51:08 +08:00
有几十万配置项? 为什么要考虑性能问题?
imherer
2019-06-04 15:55:53 +08:00
@lihongjie0209 有啊
好多地方都要读取配置表里的数据做一些业务上的操作啊
gaius
2019-06-04 16:13:19 +08:00
即时加载,方便暗改吗
snappyone
2019-06-04 16:14:21 +08:00
结合下不就可以了吗,本地一份缓存,数据库修改后推送到本地缓存
SakuraSa
2019-06-04 16:23:09 +08:00
可能 启动时加载+变更推送 会好一点,配置可以实时生效,反序列化也仅在数据变动的时候
SakuraSa
2019-06-04 16:23:52 +08:00
可以用 zookeeper 或者 consul 之类的系统实现配置变动通知
peyppicp
2019-06-04 16:39:16 +08:00
1+2 结合,服务端定时从 redis 拉取配置
后台修改完数据后,直接干掉 redis 对应的缓存项就完毕了,之后定时任务拉取的时候在重新放回 redis 里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/570786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX