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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值