Redis可以作为一个数据库使用吗?

我想用Redis做数据库,而不是缓存。根据我的理解,Redis是一个在内存中的数据库。那么使用Redis有什么风险?如何避免这些风险呢?

小飞
小飞
6842
编辑于2012-05-30
评论 (0)链接2011-10-22 

Redis就是DB,有持久化机制的,只是Nosql类型的DB,非关系型;
误解?:DB并非只有关系型,像BDB不也是DB么?相对于BDB,除了实现细节,功能上Redis确实像memcache那样用内存来加速访问。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2011-10-24

redis 能不能做数据库,要看你具体的需求了。
1. 像上面各位大牛提到的,redis的持久化有问题,如果 使用aof模式,并且fsync always,则性能比mysql 还低,如果你喜欢redis 方便的数据结构而对性能要求不高,或者性能要求很高,但允许一定程度的丢失数据,则可以用redis做为数据库。
2. redis 是内存数据库, 内存写满后,数据不会存储到硬盘上(VM 不稳定,diskstore未启用),如果你内存足够大,则可以用redis作为数据库。
3. 目前redis做数据库还不太靠谱。它支持的数据类型太少,而且查询功能太弱。redis并不是为了作为数据库使用的,它更多地是一个高速存取器,一般用作缓存和类似场景。如果你想找一个关系型数据库如mysql的替代者,推荐使用mongodb,支持海量数据,查询功能强大,数据类型支持广泛。目前已有一些团队在后台完全使用mongodb作为数据库。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-03-16

1.完全实现数据库永久保存功能不是很靠谱的吧!
2.既然是内存中的数据,如果发生拓机数据会丢失的。
3.最好定期把数据转化到磁盘做永久存储。
4.搭建好多台Redis同时工作。
略懂一些皮毛。望其他人讲解更深入点

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2011-10-23
  • 0 支持
    毕竟不是专门的数据库。最多就是主从方式持久化,减轻些master压力,但是,功能方面,肯定不如数据库哇。 – 亚飞正传 2013-04-22

这个要看业务需求,如果对数据的重要性不是特别高的情况下可以使用,目前大多数认为Resis等NoSQL不太适合做数据库的原因是因为所有数据都是存于内存中,而它的持久化机制是设置一个定期的时间,Redis根据这个时间定期把内存中的数据Flush到持久化存储当中,这样一旦Redis服务器crash掉,就会造成有一部分数据无法Flush到持久化存储中同,还有目前最新版本的Redis对集群化支持得不是很好,对于主从同步也是一主多从,是否把Redis做为持久化的DB存储还是需要多加考虑的。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-01-13

我来唱反调:

Redis 当然不是数据库(Database)了,他是一个数据库管理系统(DBMS)。不同于 MySql、MS-SQLServer那样的RDBMS(关系型数据库管理系统),Redis 是一个非关系型数据管理系统。

它不同于 memcached,Redis 可以实现数据持久化

PS: 只要是可以管理很多很多数据的系统,都可以叫做数据库管理系统,不管它是不是基于关系代数模式构建的,还是基于层模式,还是基于顺序模式。总之,他们都可以管理数据,他们都是数据库管理系统。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-12-13

由于本身产品的一些限制,我们限制是将redis作为memcached的替换品。

使用redis的好处是:
1)拥有多种数据结构,可以丰富cache的数据结构和方式。
2)有持久化的机制,能够保证数据在宕机后也不会丢失数据。

使用redis需要考虑的地方:
1)在使用前要需要对容量要有详细的规划
2)没有官方提供的集群方案
3)数据查询的能力肯定没有关系型数据库强

关键的一句话,了解这个产品的特性和不足,把合适的产品用在合适的场景中。

该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-07-20
德问是一个专业的编程问答社区,请 登录注册 后再提交答案