Redis 可以用来做数据库吗

如题所述

redis能否做数据库用取决于如下几个条件:
1:数据量,毕竟内存数据库,还是受限于内存的容量,虽然可以redis可以持久化。
2:数据的结构,是否能够将关系型数据结构都转换为key/value的形式。
3:查询的效率,对范围查询等,是否能转换为高效的hash索引查询

redis能不能拿来当数据库,取决于你想要存储什么数据:
如果你打算存储一些临时数据,数据规模不大,不需要太复杂的查询,但是对性能的要求比较高,那可以拿redis当数据库使用。
否则别拿来当数据库用。

redis 能不能做数据库,要看你具体的需求了:
1. 像上面提到的,redis的持久化有问题,如果使用aof模式,并且fsync always,则性能比mysql 还低,如果你喜欢redis 方便的数据结构而对性能要求不高,或者性能要求很高,但允许一定程度的丢失数据,则可以用redis做为数据库。
2. redis 是内存数据库, 内存写满后,数据不会存储到硬盘上(VM 不稳定,diskstore未启用),如果你内存足够大,则可以用redis作为数据库。

redis是一种k/v的内存数据库,适合小数据量的存储以及实时要求高的地方,但是不适合做完整数据库,完整数据库基本上都有一套详细解决方案,基本上没有做了的,比如mysql。

项目里用到的redis是用来做缓存的,设置过期时间,到时就自动清掉。数据库还是用mysql等这种成熟的方案。
如果你非要用一种nosql来做数据库,推荐你用Mongodb。

这种KV存储完全不具备数据库所能提供的数据安全性保障。
所以还是用来做缓存比较合适。

redis做数据库不靠谱,不是所有的数据都是立即回写磁盘的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-13
1、用来存放诸如用户注册信息、产品信息等可以估算出体量的数据还是很好的
比如一个用户注册信息1k,一亿用户信息也才需要100G内存
2、数据结构足够使用
3、搜索当然不要用redis,可以用ES来实现,搜出id后直接在redis里命中对应的数据。
4、redis最大的问题是事务的支持不好,但可以解决
5、读性能与硬盘数据库比,高出的不只一个数量级,尤其数据越多随机读的优势越明显。 并且互联网应用一般都是读多写少
第2个回答  2017-08-10
其实选择用这个redis是因为上次备选的H2的内存数据库的方案被否定了。这才选择了redis。使用它,可以大幅提高数据的查询效率,而且redis自身可以完成持久化,这就不会造成因服务器关闭而数据丢失的情况。同时它也支持集群。本回答被提问者采纳
相似回答