个人理解对于简单的存储 kv 、读写压力都比较大的需求,完全可以开启 redis 持久化,当成一个数据库来用的。aof=always 既不会导致数据丢失,也能获取极高的读性能,虽然写性能会变差,但相比 b tree/lsm tree 这种磁盘数据库性能还是比较高的吧。
而且还有个好处就是避免了常说的“缓存一致性问题”😄。
各位大佬厂里有没有这样用的?如果没有原因是什么呢?
感谢V友们踊跃评论,这里再做一个阶段性补充:
1
FawkesV 257 天前
内存太贵
|
2
ShuA1 257 天前
你把持久化的内容作为标准内容输出再导入试试
|
3
LongMaoz 257 天前 10
碰到过哦,天才设计,把 Redis 当数据库用 聚合运算无法实现,想聚合运算只能把所有数据拉到内存里再计算,延迟大得吓人
单机架构,高并发情况下 Rrdis 单线程执行,所有人全部在等待慢查询,所有 IO 也没有使用异步,整个系统高并发情况下直接崩掉 |
4
securityCoding 257 天前 via Android
有,很多活动数据都是直接丢 redis 里面
|
5
bruce0 257 天前 1
我们就这样用, 以前的时候,这个只用在数据规模比较小的时候, 一个 redis 大约几十, 几百 MB 吧,因为以前的 redis aof 和 rdb 性能没那么好, 数据量太大性能有影响. 数据规模大的 redis 自己做了一个 monitor 工具,来做数据落地
后来还换过 pika 这样的硬盘型的 kv 数据库, 优点:数据实时写入硬盘,不用担心断电数据丢失, 而且使用成本低, 数据量不受内存制约. 缺点, 读写延迟相对 redis 大, API 不是 100%兼容 redis 现在直接用 云厂商的 redis, 好处就是什么都不用管, 只管用就行. 而且有多种模式, 主从, 集群都有, 基本不用担心丢数据 !!! 最后警告, 我们的业务模式允许极端状况下 丢失少量数据, 如果涉及到非常严格的场景,纯 redis 还是有风险 |
6
lovedebug 257 天前
部分服务拿来做数据库,当时只限大数据量和高速查询用途
|
7
layxy 257 天前
各种关联组合查询以及数据聚合怎么办
|
8
matrix1010 257 天前 via iPhone
简单 kv 内存够大当然没问题。但一般情况下小公司用户少不需要那么快,大公司数据量大放内存性价比太低
|
9
kneo 257 天前 via Android
自己测一下再说。
|
10
infun 257 天前 3
redis on SSD
开源项目: https://github.com/apache/kvrocks 国内企业实践: https://www.infoq.cn/article/uksre9h9y0qefquhes2p |
11
FrankAdler 257 天前 via Android 1
我所在的公司把 redis 当持久存储使用,有些数据只在内存有数据库没有,好几个集群的内存规模在 tb 级别,当然费用也很高,现在想做降本随随便便都是万/月😄
|
12
thinkershare 257 天前 1
大部分业务都有对写有一致性要求(而且不是简单的 K/V 写入),Redis 只能用读(也要处理缓存失效的问题),完全无法处理写的一致性问题。
你看国内几家大型互联网公司,搞了一堆中间件,结果是一致性总会出现一堆奇奇怪怪的问题,我遇到的就有:美团&淘宝&京东&天猫&腾讯。 |
13
PiersSoCool 257 天前
我不信谁的系统里没有 select sum(amount) from money group by user_id 的需求,有的话老老实实 mysql 把
|
14
37Y37 257 天前 via Android
接触过很多游戏项目,就是直接 Redis 做数据库,并且跑的很成熟了,用户体量很大,基本没出过什么问题。在这之前我也一直认为 Redis 只能做缓存,实践证明做数据库也可以
单 Redis 集群有几个 T 的内存,内存太贵了,胜在现在有一些新产品可以自动分离冷热数据,降低成本到之前的 1/10 左右,很好用很划算 |
15
version 257 天前
活动秒杀啥的.上 redis 储存..比看什么高级架构师高并发 ppt 靠谱
|
16
vivisidea 257 天前
现在 nvme ssd 的性能很强,容量大的也可以很大,可以考虑楼上提到的 kvrocks 类的 ssd based redis 方案
|
17
QWE321ASD 257 天前
其他地方不知道,知乎我看见过好几个说主力数据库是 redis 的
|
18
limingzhe123 257 天前
Redis 通过 proxy+instance 做成高可用集群,就是一个内存数据库
|
19
guanzhangzhang 257 天前
如果机器配置不高,又混着用,切宕机风险高(例如小公司自建机房,随便的 vmware ,exsi ),aof 的文件会存在损坏几率的
|
20
assiadamo 257 天前
游戏行业很多年前就见过把 leveldb 集成到 redis 中当数据库用的
|
21
xiaowangge 257 天前 via iPhone
游戏行业多年前使用腾讯云魔改版 Memcached (可持久化)当数据库用。
后来又使用 Redis 当数据库用。 |
22
lidashuang 257 天前
nvme 性能好, 可以直接拿 pg 当 缓存用
rails 就是这么干的 https://discuss.rubyonrails.org/t/explaning-solid-cache-rails-new-cache-store/83970/1 |
23
roundgis 257 天前 via Android
云风的游戏公司好像用 redis 当主数据库
|
24
hxzhouh1 257 天前
如果只有 KV 数据,没关系型运算,应该可以把,但是我不敢尝试,毕竟丢数据比较糟心
|
25
dododada 257 天前
有的,以前我们就用,IM 的 TCP 消息服务,16 台 256Gredis 。除了业务逻辑上的问题,从来没有什么并发跟不上。
嫌贵的话可以试试 ssd ,小米有个基于 rockdb 的开源项目,我们也用过,性能比 redis 低一些,但是很便宜。 另外当年有个新闻,某成人网站,主数据库就迁移到 redis 了 |
26
locochen 257 天前
可以对比下 SAP Hana 内存数据库
|
27
Rickkkkkkk 257 天前
挺多的
|
28
fcten 257 天前
想法很好,有很多人都是这么想的。但是用 Redis 来搞属实有些蹩脚,所以有了 LevelDB 。
|
29
ZeroAsh 257 天前
NoSQL 做业务数据存储如果没做详细的调研确定自己能用 Redis ,整体感觉是直接上 MongoDB 更好,功能更多更全,楼上说的 aggregate/sum 这种查询也没问题
|
30
RedisMasterNode 257 天前
这样的玩法为啥不直接用个 KV 存储咧?
|
31
ychost 257 天前
你这个需求应该用 MongoDB 速度也够快,查询也够灵活就是不支持 join 而已
|
32
totoro52 257 天前
问题来了。。 事务怎么办
|
33
me1onsoda 257 天前
你对缓存一致性是不是有什么误解?
|