redis實現増刪改、查詢過濾功能

搜了一下,似乎沒有redis的分版,正好方便從sql向redis轉換的同行,就發在本版吧

redis性能強悍,多機方便,但是這種key=value機制的系統,似乎無法實現數據庫特有的増刪改、查詢過濾

經過幾天學習,似乎找到一個辦法。。。。
(雖然有點累贅,但勝於無。也算是redis初學者的拋磚引玉)

例子:表man,字段id、姓名、年齡、城市
記錄數據:
1 zhangsan 20 bj
2 lisi 25 sh
3 wangwu 20 sz
4 zhaoliu 25 bj
5 maqi 20 sz

批量insert:
hset man.1 name zhangsan age 20 city bj
hset man.2 name lisi age 25 city sh
hset man.3 name wangwu age 20 city sz
hset man.4 name zhaoliu age 25 city bj
hset man.5 name maqi age 20 city sz
//建立索引
sadd man.age.20 1 3 5
sadd man.age.25 2 4

sadd man.name.zhangsan 1
sadd man.name.lisi 2
sadd man.name.wangwu 3
sadd man.name.zhaoliu 4
sadd man.name.maqi 5

sadd man.city.bj 1 4
sadd man.city.sh 2
sadd man.city.sz 2 5

insert單人:
6 zhouba 22 sz
hset man.6 name zhouba age 22 city sz
sadd man.age.22 6
sadd man.name.zhouba 6
sadd man.city.sz 6

delete:3
t=hget man.3 name
srem man.name.[t] 3
t=hget man.3 age
srem man.age.[t] 3
t=hget man.3 city
srem man.city.[t] 3
del man.3

update:4 city:bj->sh
t=hget man.4 city
srem man.city.[t] 4
sadd man.city.sh 4
hset man.4 city sh

查詢:city=sz 的人
smembers man.city.sz

查詢:age=20 的人
smembers man.age.20

查詢:city=sz and age=20 的人
sinter man.city.sz man.city.20

發佈了38 篇原創文章 · 獲贊 111 · 訪問量 59萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章