一个新的项目,上级的意思是要使用 redis 作为主数据库来提高服务的性能,使用 mongodb 或 mysql 等数据库作为冷备数据库。 大家有这样用的吗?
1
wellsc 2021-10-03 22:57:47 +08:00 via iPhone
别这么用,是在要用这么别扭的东西就上 pika
|
2
heyjei 2021-10-03 23:00:15 +08:00 1
6379 请绑定在 127.0.0.1
|
3
Maboroshii 2021-10-03 23:00:23 +08:00 via Android
有,直接用的阿里云的。但是我们的数据都是不太重要,所以这么用问题不大。还是要看具体业务
|
4
HUNYXV OP @Maboroshii 数据还是蛮重要的,不过数据有时限,过时的就删掉了。
|
5
HUNYXV OP @wellsc emm,上级就让这么用,使用的是 阿里云的 redis,稳定性应该尚可,不过之前阿里的 redis 出过故障,赔给了一些代金券...
|
6
shyangs 2021-10-03 23:15:46 +08:00
數據不重要可以這麼玩.
金融銀行業不會這麼玩 ( Redis 作為主資料庫). 數據重要不重要, 要問你上級. |
7
clf 2021-10-04 01:07:21 +08:00 via Android
没写到磁盘的数据都是不可靠的。第二手的数据也是不可靠的。
提高服务的性能不如做好高频数据的查询优化。 唯一完全丢 Redis 里的东西是那些丢失了也无所谓的数据。 |
8
gabon 2021-10-04 07:37:06 +08:00 via Android
可以看看基于 rocks db 兼容 Redis 协议的数据库,自带持久化,性能尚可。
|
9
yuanmomo 2021-10-04 08:50:13 +08:00 via iPhone
做过两个项目,以 Redis 为主库。一个是广告推荐系统,之前迅雷的广告平台每天量还是很大的,当时拉暴风放点测试流量就给了我 1.5 亿左右的请求。广告系统允许 5%的误差,所以这么用,没有关系。
第二个系统,跟钱沾点关系,也这么用的,Redis 集群还是在云上自己搞的,跑了两年,居然没有出过问题。也是神奇 |
10
yuanmomo 2021-10-04 08:54:28 +08:00 via iPhone
看你的量,是否要上集群,然后做好主从(一主两从),aof 和 rdb 配合使用,key 分类使用,做好监控的,搞好主从切换方案,好像就这些
|
11
gidot 2021-10-04 09:20:22 +08:00
redis 放热数据没问题的,但新增重要数据时:日志+异步落库,让 redis 出现意外损失降到最低。
|
12
aptupdate 2021-10-04 10:06:40 +08:00 via iPhone
数据量到一定规模之后怎么办呢?
|
13
Ansen 2021-10-04 10:13:27 +08:00 via iPhone
我们这么用了好几年了,使用的是 aof 模式
|
14
1194129822 2021-10-04 10:26:54 +08:00
一般而言数据都是很重要的。所以事务很重要。内存 cache 一般都不支持事务,主要是因为事务现在的必须用到日志,这又会极大降低性能。现在好像有傲腾持久内存,以后数据库可能真的会出现常驻内存的 ACID 数据库。
|
15
ctro15547 2021-10-04 11:02:23 +08:00
可以本地化,家里几个传感器数据就用的 redis,多年没出过问题 。不重要数据可以这么玩,工作生产的请上 mysql
|
16
sujin190 2021-10-04 11:04:38 +08:00 via Android
首先你们真的有超过 mongodb 和 mysql 的性能需求么,过度设计了吧,除了性能,一致性、集群和事务也还是跟重要的
|
19
ospider 2021-10-04 11:32:13 +08:00
别
|
20
easychen 2021-10-04 11:39:44 +08:00
试试现成的方案 http://tendis.cn/ ?
|
21
ch2 2021-10-04 11:57:09 +08:00
经常备份 aof,数据别存太多防止爆内存
|
22
luin 2021-10-04 12:02:43 +08:00 2
一个建议是管理 Redis 时可以用我写的 Medis: https://getmedis.com/ 哈哈哈
正经来讲,虽然可以(确实有不少公司这么用),但是非常不推荐,除非你们真的知道自己在做啥...随便想几个例子: 1. Redis 的查询能力相比 MySQL 和 MongoDB 而言很初级,所以实现一些功能你需要手动维护二级索引。维护成本随着数据复杂度会明显上升; 2. 作为 primary database 的生态环境比其他正经数据库差。例如性能分析; 3. 一般情况下,空间大小受限内存;除非用非官方的各种 SSD/RocksDB 魔改版; 4. 没有事务啥的,不过看来你们用不上... 记得 AOF & 设置好 fsync 。 |
23
freelancher 2021-10-04 12:21:17 +08:00
数据丢了就等着向老板吊得半死。最后被炒。
|
24
roundgis 2021-10-04 12:37:36 +08:00 via Android
redis 不要考慮持久化
|
25
palmers 2021-10-04 13:00:48 +08:00
如果是性能 可以通过多种手段优化,比如 JVM+reids+mysql 的形式 如果数据可以快速恢复 可以放 redis 里 如此数据不丢失 只要可以保障数据安全 我觉得怎么折腾都可以 只要达到目的就行了
|
26
palmers 2021-10-04 13:02:00 +08:00
JVM 是指 localcache 的类似东西
|
27
debuggerx 2021-10-04 14:24:28 +08:00 via Android 1
如果应用场景确实不注重数据可靠性,为了提高性能这样用,完全是可以的,而且可以设计地简单可控。我之前一个 H5 游戏就是这个思路写的,效果非常好
|
28
HUNYXV OP @aptupdate redis 中保存的数据是有时限属性的,现在是为了快速上线,等数据量达到很大规模,可能就考虑更换了
ps:主要开发就我一个人😂 |
29
simonlu9 2021-10-04 14:52:16 +08:00
内存是个问题,试过爆内存写入失败情况
|
30
securityCoding 2021-10-04 15:48:09 +08:00 via Android
图什么呢
|
31
jorneyr 2021-10-04 16:18:49 +08:00
工作中尽量按照上级的安排做,不要自作主张并且反驳抵触,正确与错误并不重要,但是同时要留下足够的证据:
1. 听上级的,叫你怎么做就怎么做 2. 为了避免后期出问题后背锅,根据上级的意思,写设计文档,然后通过邮件的方式发给上级,让他给评审一下,评审通过后继续开发,以后有据可查 |
33
wolfie 2021-10-04 17:12:53 +08:00
事务怎么办
|
34
fannas 2021-10-04 17:16:24 +08:00 via iPhone
作为数据库,oracle snowflake 不香了吗
再不济 mongo db 企业版也行 |
35
yidinghe 2021-10-04 17:27:11 +08:00 via Android
如果确实你的业务不需要进行关系型查询,这样做倒是无可厚非,不过这种场景我想不出来。
|
37
leafre 2021-10-04 21:33:21 +08:00
不建议
|
38
wangxiyu191 2021-10-04 22:52:32 +08:00
如果可靠性非常重要可以考虑一些针对数据可靠性和一致性进行了增强的 redis 接口存储服务。
https://aws.amazon.com/cn/memorydb/ https://help.aliyun.com/document_detail/183956.html |
39
akira 2021-10-04 23:27:28 +08:00
看你们的实际业务情况呀,如果确实能大幅度提升性能的话 那为什么不呢.
之前有个案例就是,一个海外的图片分享网站,就是用了十几台 redis 做的集群,性能超好。 |
40
786375312123 2021-10-04 23:53:14 +08:00
redit 自己就有机制可以冷保存在硬盘上啊
|
41
kuangwinnie 2021-10-05 02:13:28 +08:00
我们之前用 k8s 的时候就是用 redis 做数据库,你做好 sharding 就问题不大。
|
42
kuangwinnie 2021-10-05 02:14:00 +08:00
因为 k8s 的写硬盘就是很烦,所以正好符合了 redis 的需求。
|
44
opengps 2021-10-05 12:05:46 +08:00
redis 用作缓存,并非主数据。虽然 redis 现在支持落盘存储,但是还是建议关系型数据库用作持久目的
|
45
MeteorCat 2021-10-05 13:18:47 +08:00 via Android
我感觉还不如 MongoDB,数据安全性更重要,还是 MySQL 之类入库得了
|
46
mywaiting 2021-10-05 13:20:28 +08:00
生产数据宁愿丢 MySQL/PostgreSQL 里面吃灰,也绝不会丢 Redis 做持久化存储
|
47
troywinter 2021-10-06 23:59:34 +08:00
领导说什么就是什么吧,我的经验就是说服领导是个吃力不讨好的活,但除此之外,你可以双写,写日志或者写数据库,毕竟丢数据锅还是在你。
|