业内有没有把 redis 开启 aof=always 当做数据库使用的?

2024-03-04 09:06:54 +08:00
 Orlion

个人理解对于简单的存储 kv 、读写压力都比较大的需求,完全可以开启 redis 持久化,当成一个数据库来用的。aof=always 既不会导致数据丢失,也能获取极高的读性能,虽然写性能会变差,但相比 b tree/lsm tree 这种磁盘数据库性能还是比较高的吧。

而且还有个好处就是避免了常说的“缓存一致性问题”😄。

各位大佬厂里有没有这样用的?如果没有原因是什么呢?

8237 次点击
所在节点    Redis
33 条回复
FawkesV
2024-03-04 09:13:00 +08:00
内存太贵
ShuA1
2024-03-04 09:13:21 +08:00
你把持久化的内容作为标准内容输出再导入试试
LongMaoz
2024-03-04 09:13:54 +08:00
碰到过哦,天才设计,把 Redis 当数据库用 聚合运算无法实现,想聚合运算只能把所有数据拉到内存里再计算,延迟大得吓人

单机架构,高并发情况下 Rrdis 单线程执行,所有人全部在等待慢查询,所有 IO 也没有使用异步,整个系统高并发情况下直接崩掉
securityCoding
2024-03-04 09:15:15 +08:00
有,很多活动数据都是直接丢 redis 里面
bruce0
2024-03-04 09:18:19 +08:00
我们就这样用, 以前的时候,这个只用在数据规模比较小的时候, 一个 redis 大约几十, 几百 MB 吧,因为以前的 redis aof 和 rdb 性能没那么好, 数据量太大性能有影响. 数据规模大的 redis 自己做了一个 monitor 工具,来做数据落地

后来还换过 pika 这样的硬盘型的 kv 数据库, 优点:数据实时写入硬盘,不用担心断电数据丢失, 而且使用成本低, 数据量不受内存制约. 缺点, 读写延迟相对 redis 大, API 不是 100%兼容 redis

现在直接用 云厂商的 redis, 好处就是什么都不用管, 只管用就行. 而且有多种模式, 主从, 集群都有, 基本不用担心丢数据


!!! 最后警告, 我们的业务模式允许极端状况下 丢失少量数据, 如果涉及到非常严格的场景,纯 redis 还是有风险
lovedebug
2024-03-04 09:20:29 +08:00
部分服务拿来做数据库,当时只限大数据量和高速查询用途
layxy
2024-03-04 09:21:22 +08:00
各种关联组合查询以及数据聚合怎么办
matrix1010
2024-03-04 09:25:45 +08:00
简单 kv 内存够大当然没问题。但一般情况下小公司用户少不需要那么快,大公司数据量大放内存性价比太低
kneo
2024-03-04 09:28:07 +08:00
自己测一下再说。
infun
2024-03-04 09:42:24 +08:00
FrankAdler
2024-03-04 09:50:31 +08:00
我所在的公司把 redis 当持久存储使用,有些数据只在内存有数据库没有,好几个集群的内存规模在 tb 级别,当然费用也很高,现在想做降本随随便便都是万/月😄
thinkershare
2024-03-04 09:56:13 +08:00
大部分业务都有对写有一致性要求(而且不是简单的 K/V 写入),Redis 只能用读(也要处理缓存失效的问题),完全无法处理写的一致性问题。
你看国内几家大型互联网公司,搞了一堆中间件,结果是一致性总会出现一堆奇奇怪怪的问题,我遇到的就有:美团&淘宝&京东&天猫&腾讯。
PiersSoCool
2024-03-04 10:05:33 +08:00
我不信谁的系统里没有 select sum(amount) from money group by user_id 的需求,有的话老老实实 mysql 把
37Y37
2024-03-04 10:06:25 +08:00
接触过很多游戏项目,就是直接 Redis 做数据库,并且跑的很成熟了,用户体量很大,基本没出过什么问题。在这之前我也一直认为 Redis 只能做缓存,实践证明做数据库也可以

单 Redis 集群有几个 T 的内存,内存太贵了,胜在现在有一些新产品可以自动分离冷热数据,降低成本到之前的 1/10 左右,很好用很划算
version
2024-03-04 10:28:42 +08:00
活动秒杀啥的.上 redis 储存..比看什么高级架构师高并发 ppt 靠谱
vivisidea
2024-03-04 10:32:01 +08:00
现在 nvme ssd 的性能很强,容量大的也可以很大,可以考虑楼上提到的 kvrocks 类的 ssd based redis 方案
QWE321ASD
2024-03-04 10:46:40 +08:00
其他地方不知道,知乎我看见过好几个说主力数据库是 redis 的
limingzhe123
2024-03-04 11:18:14 +08:00
Redis 通过 proxy+instance 做成高可用集群,就是一个内存数据库
guanzhangzhang
2024-03-04 12:33:40 +08:00
如果机器配置不高,又混着用,切宕机风险高(例如小公司自建机房,随便的 vmware ,exsi ),aof 的文件会存在损坏几率的
assiadamo
2024-03-04 12:40:16 +08:00
游戏行业很多年前就见过把 leveldb 集成到 redis 中当数据库用的

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

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

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

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

© 2021 V2EX