17 redis -key设计原则
生活随笔
收集整理的這篇文章主要介紹了
17 redis -key设计原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
書簽系統
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 #求差集
Redis key 設計技巧1: 把表名轉換為key前綴 如, tag:
2: 第2段放置用于區分區key的字段--對應mysql中的主鍵的列名,如userid
3: 第3段放置主鍵值,如2,3,4...., a , b ,c
4: 第4段,寫要存儲的列名用戶表 user , 轉換為key-value存儲
--------------------------------------------------userid username passworde email
-------------------------------------------------- 9 Lisi 1111111 lisi@163.com
--------------------------------------------------set user:userid:9:username lisi set user:userid:9:password 111111 set user:userid:9:email lisi@163.comkeys user:userid:9*2 注意: 在關系型數據中,除主鍵外,還有可能其他列也步驟查詢, 如上表中, username 也是極頻繁查詢的,往往這種列也是加了索引的.轉換到k-v數據中,則也要相應的生成一條按照該列為主的key-value Set user:username:lisi:uid 9 這樣,我們可以根據username:lisi:uid ,查出userid=9, 再查user:9:password/email ...
--------------------------------------------------userid username passworde email
-------------------------------------------------- 9 Lisi 1111111 lisi@163.com
--------------------------------------------------set user:userid:9:username lisi set user:userid:9:password 111111 set user:userid:9:email lisi@163.comkeys user:userid:9*2 注意: 在關系型數據中,除主鍵外,還有可能其他列也步驟查詢, 如上表中, username 也是極頻繁查詢的,往往這種列也是加了索引的.轉換到k-v數據中,則也要相應的生成一條按照該列為主的key-value Set user:username:lisi:uid 9 這樣,我們可以根據username:lisi:uid ,查出userid=9, 再查user:9:password/email ...
?
總結
以上是生活随笔為你收集整理的17 redis -key设计原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mycncart操作使用教程 - 商品分
- 下一篇: NOI2011 智能车比赛