复杂数据存储
一般的数据存储,就是一个key对应一个简单字符串,可以要想向mysql一样,保存或者获取某一列的所有值呢,
例如,用户表结构为
| id | name | age |
|---|---|---|
| 1 | 张三 | 19 |
| 2 | 李四 | 23 |
这种情况一般可以利用json存储或者是hash
- json存储
redis 127.0.0.1:6379> set charmtest:user:1 '{"name":"张三","age":"19"}'
OK
redis 127.0.0.1:6379> set charmtest:user:2 '{"name":"李四","age":"23"}'
OK
redis 127.0.0.1:6379> get charmtest:user:1
"{"name":"张三","age":"19"}"
redis 127.0.0.1:6379> get charmtest:user:2
"{"name":"李四","age":"23"}"
- hash存储
redis 127.0.0.1:6379:0>hset 'charmhash:user:1' name '张三'
"1"
redis 127.0.0.1:6379:0>hset 'charmhash:user:1' age 19
"1"
##获取数据
redis 127.0.0.1:6379:0>hget 'charmhash:user:1' name
"张三"
redis 127.0.0.1:6379:0>hget 'charmhash:user:1' age
"19"
进阶命令
- SADD
无序集合操作
格式:sadd key member
获取:smembers key
redis 127.0.0.1:6379:0>sadd charm:members:db redis
"1"
redis 127.0.0.1:6379:0>sadd charm:members:db mysql
"1"
redis 127.0.0.1:6379:0>sadd charm:members:db mongodb
"1"
redis 127.0.0.1:6379:0>sadd charm:members:db sqlserver
"1"
##获取所有集合
redis 127.0.0.1:6379:0>smembers charm:members:db
1) "redis"
2) "mysql"
3) "sqlserver"
4) "mongodb"
- ZADD
有序集合操作
格式:zadd key score member
获取:ZRANGEBYSCORE runoob 0 1000
##设置key,所谓的有序集合,就是插入的时候增加了一个顺序,
redis 127.0.0.1:6379:0>zadd charm:zmembers:db 3 mysql3
"1"
##获取所有
redis 127.0.0.1:6379:0>ZRANGEBYSCORE charm:zmembers:db 0 100
1) "mongodb"
2) "mysql"
3) "redis"
4) "mysql3"
5) "mongodb5"
redis 127.0.0.1:6379:0>
- lrange 和 list操作
##LPUSH 增加list
redis 127.0.0.1:6379:0>LPUSH charmlist:goods 商品1
"1"
redis 127.0.0.1:6379:0>LPUSH charmlist:goods 商品2
"2"
redis 127.0.0.1:6379:0>LPUSH charmlist:goods 商品3
"3"
redis 127.0.0.1:6379:0>LPUSH charmlist:goods 商品4
"4"
##lrange 获取所有list
redis 127.0.0.1:6379:0>lrange charmlist:goods 0 -1
1) "商品4"
2) "商品3"
3) "商品2"
4) "商品1"
## lindex 按照key获取list所对应的值
redis 127.0.0.1:6379:0>lindex charmlist:goods 3
"商品1"
## llen 获取list的长度
redis 127.0.0.1:6379:0>llen charmlist:goods
"4"











网友评论