日期:2014-05-16  浏览次数:20577 次

让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


------解决方案--------------------
前排就坐
好好学习
天天向上
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
redis还是不错的。
------解决方案--------------------
好东东  大家分享 感谢楼主
------解决方案--------------------
太有帮助了 谢谢谢谢啊
------解决方案--------------------
看看怎么操作。
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
前排学习,好好学习天天向上
------解决方案--------------------
是个好帖子!!!
------解决方案--------------------
是的,应该增加一个内存数据库版块专门研究REDIS等数据库
------解决方案--------------------
前排学习,好好学习天天向上