设计像SQL那样的Redis数据库表?

假设我的数据库表结构是这样的

id name college address

1 xxx nnn xn

2 yyy nnm yn

3 zzz nnz zn

如果我想根据像这样的sql中的名称获取学生详细信息,请从 name =’xxx’的学生那里选择,以便在redis数据库" title="redis数据库">redis数据库中如何实现

回答:

像其他NoSQL数据存储区一样,Redis根据要执行的操作有不同的要求。

Redis有几种数据结构,根据您的需求可能有用。例如,鉴于您对a的渴望,select * from student where name =

'xxx'可以使用Redis hash

redis 127.0.0.1:6379> hmset xxx id 1 college nnn address xn

OK

redis 127.0.0.1:6379> hgetall xxx

1) "id"

2) "1"

3) "college"

4) "nnn"

5) "address"

6) "xn"

如果您还有其他查询,例如您想做同样的事情但选择on,where college =

'nnn'那么您将不得不对数据进行非规范化。在SQL中,非规范化通常是一件坏事,但在NoSQL中,它是很常见的。

如果您的主要查询是针对名称的,但是您可能需要针对大学查询,那么您可能会执行一些操作,例如set在哈希表之外添加一个。

redis 127.0.0.1:6379> sadd college.nnn xxx

(integer) 1

redis 127.0.0.1:6379> smembers college.nnn

1) "xxx"

数据的结构是这样的,如果要查找有关进入xn大学的姓名的所有信息,则应首先选择set,然后hash根据中返回的名称选择每个信息set

您的需求通​​常会驱动您使用的设计和结构。

以上是 设计像SQL那样的Redis数据库表? 的全部内容, 来源链接: utcz.com/qa/421375.html

回到顶部