【redis】redis与关系型数据库的比较

现在有2张表,

一张放书的信息

create table book (

bookid int,

title char(20)

)engine myisam charset utf8;

 

insert into book values

(5 , 'PHP圣经'),

(6 , 'ruby实战'),

(7 , 'mysql运维')

(8, 'ruby服务端编程');

 

一张放书的标签

create table tags (

tid int,

bookid int,

content char(20)

)engine myisam charset utf8;

 

insert into tags values

(10 , 5 , 'PHP'),

(11 , 5 , 'WEB'),

(12 , 6 , 'WEB'),

(13 , 6 , 'ruby'),

(14 , 7 , 'database'),

(15 , 8 , 'ruby'),

(16 , 8 , 'server');

 

在关系型数据库中,如果我们要查询既有web标签,又有PHP标签的书,要用两张表联查

select * from tags inner join tagsas t on tags.bookid=t.bookid

where tags.content='PHP' andt.content='WEB';

 

rediskey-value数据库中,我们用key-value来存储

 

set book:5:title 'PHP圣经'

set book:6:title 'ruby实战'

set book:7:title 'mysql运难'

set book:8:title ‘ruby server’

 

sadd tag:PHP 5

sadd tag:WEB 5 6

sadd tag:database 7

sadd tag:ruby 6 8

sadd tag:SERVER 8

 

: 既有PHP,又有WEB的书

Sinter tag:PHP tag:WEB  #查集合的交集

 

: PHP或有WEB标签的书

Sunin tag:PHP tag:WEB

 

:含有ruby,不含WEB标签的书

Sdiff tag:ruby tag:WEB #求差集





猜你喜欢

转载自blog.csdn.net/zjy15203167987/article/details/79952997
今日推荐