是否存在数据库,缓存层合一的解决方案?

2022-08-07 14:23:47 +08:00
 b00tyhunt3r

楼主背景游戏服务器开发, 一直以来沿用的是老一套 DB + redis/memcache 的形式来做存储。虽然方案比较稳定了,但是在扩容和复杂度上一直感觉不是那么直观。 看到过有一些公司直接舍弃 DB 层,只用一个 redis 定时持久化做存储, 但感觉小规模的项目还行,数据量上去了对内存要求会不会过大呢? 也见过有人舍弃缓存层只用 Postgres 来存储,据说百万级并发请求性能只比 redis 慢 1 倍?

另外问一下 MongoDB 算不算是一个 DB/Cache 合一的解决方案呢?就是我项目里只用一个 MongoDB ,MySQL/Postgre/redis 之流通通不要

请大佬现身说法!!!

5385 次点击
所在节点    程序员
36 条回复
documentzhangx66
2022-08-08 02:32:24 +08:00
羡慕楼主,居然不用 RMDB 也能撑起业务。其实 RMDB 能不用就别用,毕竟麻烦。

另外,Redis \ MongoDB 这种,没遇到极端情况与场景,不会触发其不稳定问题,用起来当然好。

不然地球上最强数据库 Oracle 为啥能卖这么贵。
aima
2022-08-08 04:53:35 +08:00
singlestore
hoopan
2022-08-08 08:53:48 +08:00
之前也思考过这个问题,貌似没有这种数据库,还是要根据业务场景搭配使用。高并发场景,必然是 Redis 这类内存数据库,缺点是容量小、非关系型,目前只能放一些热数据。
dqzcwxb
2022-08-08 09:33:29 +08:00
jetcache 做好本机缓存+远程缓存,远程缓存可以是多层
tairan2006
2022-08-08 09:38:05 +08:00
redis lab 里面有支持 sql 的扩展,做好落盘的话,直接拿来当 db 用也行。

不过游戏场景,有时候 redis 都扛不住……
bthulu
2022-08-08 09:41:38 +08:00
有的, mysql 有内存数据库, 可以当缓存用
nothingistrue
2022-08-08 09:43:51 +08:00
如果你要知道缓存是干什么的,大概就不会这样问了。直接读取最终存储效率不够,于是弄个缓存提高读取效率。所以,只会出现因为数据库效率够了不要缓存的情况,不会出现数据库和缓存合一的情况。
hst001
2022-08-08 10:26:00 +08:00
小项目没有问题,压力大了还是会回到 DB + Cache 那一套
Martens
2022-08-08 10:30:51 +08:00
可不可以这样:玩家登陆直接把数据读到内存里,离线后把数据落盘
huangwei8ku
2022-08-08 10:33:05 +08:00
@b00tyhunt3r clickhouse 了解下
litguy
2022-08-08 10:37:56 +08:00
你们数据库存什么东西
如果只是简单记录
理论上 sqlite 都能有足够高 qps
大部分数据是可以通过 os 的 page cache 命中的
stevefan1999
2022-08-08 11:31:02 +08:00
這不就是 NoSQL 嗎
zhangxzh
2022-08-08 12:39:00 +08:00
传统点的方案, Oracle TimesTen Application-Tier Database Cache
wxdiy
2022-08-08 17:28:47 +08:00
游戏这么多年基本都是这么用的。用 C++基本都是进程内存缓存数据,有变化时或者定时同步到数据库。这种架构不好动吧,还是直接用这稳定的架构谢谢业务逻辑吧
whileFalse
2022-08-08 19:16:36 +08:00
aws dynamodb 是一种 nosql 。
aws 官方支持内存缓存,启用后延迟从毫秒级缩短到微秒级,并且 api 和一致性不变,对应用层面是透明的。
whileFalse
2022-08-08 19:23:08 +08:00
另外 aws memorydb 是 redis 的强持久化版本。

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

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

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

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

© 2021 V2EX