【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';
在redis的key-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 #求差集