中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis應用之——標簽

發布時間:2020-08-01 16:38:05 來源:網絡 閱讀:2118 作者:梁十八 欄目:關系型數據庫

mysql

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 tags as t on tags.bookid=t.bookid

where tags.content='PHP' and t.content='WEB';

 

 


換成key-value存儲

kv 來存儲

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 #求差集


假設需要需要查詢既屬于,又屬于,又屬于的情況,以mysql為例,用到join(如果取交集的標簽夠多,join的量會夠多),語句會很長,很耗資源。而redis能輕松解決這個問題:


有若干本書,分別屬于若干個標簽(類型):

    'php圣經','java圣經','C++圣經','asp圣經','php從入門到放棄','go圣經','linux內核編程','python圣經'

    

屬于php的:

    'php圣經','php從入門到放棄'

屬于web的:

    'php圣經','asp圣經','php從入門到放棄'

屬于code的:

    'php圣經','java圣經','C++圣經','asp圣經','php從入門到放棄','go圣經','python圣經'

屬于system的:

    'linux內核編程


接下來,字段設置:

    先將書設置好:

        set book:1:title 'php圣經'

        set book:2:title 'java圣經'

        set book:3:title 'C++圣經'

        set book:4:title 'asp圣經'

        set book:5:title 'php從入門到放棄'

        set book:6:title 'go圣經'

        set book:7:title 'linux內核編程'

        set book:8:title 'python圣經'

    將書簽設置好:

        sadd tag:php    1 5

        sadd tag:web    1 4 5

        sadd tag:code   1 2 3 4 5 6 8

        sadd tag:system 7 


用集合,取交集的方式迅速求出

    既屬于php標簽又屬于web標簽的:

    127.0.0.1:6379> sinter tag:php tag:web

    1

    5

    既屬于php標簽又屬于web標簽又屬于code標簽的:

    127.0.0.1:6379> sinter tag:php tag:web tag:code

    1

    5


獲取1、5的書名:

    127.0.0.1:6379> get book:1:title

    php圣經

    127.0.0.1:6379> get book:5:title

    php從入門到放棄


注意:正常情況下redis命令窗口不顯示中文,要顯示中文要加上--raw參數

    [lzw@localhost bin]$ redis-cli

    127.0.0.1:6379> get book:1:title

    "php\xe5\x9c\xa3\xe7\xbb\x8f"

    127.0.0.1:6379> 

    [lzw@localhost bin]$ redis-cli --raw

    127.0.0.1:6379> get book:1:title

    php圣經

    

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜兰市| 易门县| 泰和县| 镇安县| 大名县| 盖州市| 沙湾县| 增城市| 桐乡市| 沾益县| 依安县| 西充县| 崇文区| 建宁县| 井研县| 黄大仙区| 溧水县| 四子王旗| 凤冈县| 黄山市| 德清县| 怀化市| 工布江达县| 吐鲁番市| 垫江县| 龙南县| 会理县| 岑溪市| 墨江| 当涂县| 泸定县| 永修县| 泰兴市| 永胜县| 余江县| 合作市| 安丘市| 新绛县| 金沙县| 巴林左旗| 德阳市|