像SQL一样设计Redis数据库表?

前端之家收集整理的这篇文章主要介绍了像SQL一样设计Redis数据库表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我的数据库表结构是这样的
id name college address
1  xxx   nnn     xn
2  yyy   nnm     yn
3  zzz   nnz     zn

如果我想根据这样的sql中的名称获取学生详细信息
select * from student where name =’xxx’
那么在redis数据库中它是如何实现的

解决方法

与其他Nosql数据存储区一样,Redis根据您将要执行的操作有不同的要求.

Redis有几种数据结构,根据您的需要可能很有用.例如,考虑到您希望从学生中选择*,其中name =’xxx’,您可以使用Redis哈希.

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"

如果你有其他疑问,就像你想做同样的事情,但选择大学=’nnn’的地方,那么你将不得不对你的数据进行非规范化.非规范化在sql中通常是一件坏事,但在Nosql中它很常见.

如果您的主要查询是针对该名称的,但您可能需要查询该大学,那么除了哈希之外,您还可以执行添加集合等操作.

redis 127.0.0.1:6379> sadd college.nnn xxx
(integer) 1
redis 127.0.0.1:6379> smembers college.nnn
1) "xxx"

如果您的数据结构如此,如果您想查找到大学xn的名称的所有信息,您首先要选择该集合,然后根据集合中返回的名称选择每个散列.

您的要求通常会推动您使用的设计和结构.

猜你在找的MsSQL相关文章