Redis 可以用来做数据库吗?

是否可以用来作为数据库,还是看业务,架构是技术对业务妥协的结果!
按照发展阶段来看。
产品初期,业务需求多变,数据量很小,数据结构朝令夕改,这时候如果用mysql很有可能会在改
数据库结构上疲于奔命,如果用Redis,由于没有Scheme约束,数据结构的变更相对容易,比起
mysql能轻松不少。
产品中期,业务需求逐渐稳定,可以将核心数据导到mysql中落地,其余数据仍然放在Redis中。
产品后期,业务需求基本稳定,数据应该尽量都落地到mysql,Redis做高速缓存,或者先写到
Redis,再异步刷到mysql。
mysql能支持对各个字段的查询,Redis的查询仅限于对key的简单匹配,如果要对value进行复杂查
按照对数据的需求来看询,不适合用Redis。
Redis新增了计数器、bitmaps以及地理位置索引的支持,特别是地理位置索引,可以方便的做附近
搜索,有需求的话可以考虑。

Redis 可以用来做数据库吗? - 李波的回答 - 知乎
https://www.zhihu.com/question/19660689/answer/89272054

### 回答1: 是的,Redis 可以通过使用哈希表或集合来实现 join 操作。 如果您想要在 Redis 中进行 join 操作,可以使用哈希表或集合来存储关系数据。例如,假设您有一张用户表和一张订单表,您可以使用哈希表来存储用户信息,并使用集合来存储每个用户的订单。然后,可以使用 Redis 的集合操作(例如 SINTER 命令)来执行 join 操作。 此外,Redis 还提供了 RedisGraph 插件,它是一个基于图形数据库Redis 插件,可以用来执行复杂的 join 操作。 总的来说,Redis 是一个高性能的内存数据库,可以通过多种方式来实现 join 操作。 ### 回答2: Redis是一个基于内存的键值型数据库,它主要用于高速读取、写入和存储数据。与传统的关系型数据库不同,Redis并不直接支持传统的SQL语法和关系型数据模型,因此在Redis中无法像关系型数据库那样直接使用JOIN操作。 然而,虽然Redis中没有内置的JOIN操作,但可以通过不同的方式间接模拟实现类似的功能。 一种常见的方法是使用应用程序在从Redis中检索数据之后进行数据整合和关联操作。例如,如果我们有两个Redis哈希表,每个表都包含不同的字段和数据,我们可以在应用程序中将它们获取并进行关联,实现JOIN操作的效果。这种方法需要在应用程序层面上实现逻辑和算法。 另一种方法是使用Redis的Sorted Set或者Hash数据结构,它们提供一些集合操作来执行交集、并集、差集等操作。通过使用这些集合操作,我们可以在Redis中模拟某种程度上的JOIN操作。 需要注意的是,虽然Redis可以通过以上方式间接模拟实现JOIN操作,但由于Redis的主要设计目标是快速读写和存储大量数据,而不是支持复杂的查询操作,所以在一些情况下使用Redis来进行JOIN操作可能不是最佳的选择。对于需要执行大量JOIN操作的复杂查询,传统的关系型数据库可能更加适合。 ### 回答3: 不可以,数据库Redis不支持传统的关系型数据库中的join操作。Redis是一款基于内存的缓存数据库,主要用于存储和访问键值对数据。它采用的数据结构是键值对哈希表,不支持表和表之间的关联查询。Redis的设计目标是高性能和高可用性,因此在功能上了很多的削减和简化。它主要提供了一些基本的操作,如设置键值对、获取键值对以及基于键的一些操作。Redis的数据查询主要是通过键进行的,不支持多表关联查询的功能。如果需要进行多表关联查询,可以考虑使用传统的关系型数据库,如MySQL、Oracle等。数据库Redis主要适用于缓存、计数器、消息队列等场景,对于复杂的数据查询操作并不是最佳选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值