Redis 数据类型

1.string类型       key  value
2.hash类型		key  field  value  field  value
3.list类型		key  value  value  value
4.集合类型		  key  {member,member,member}
5.有序集合		  

1.集合类型

#对比集合的数据时,拿前者与后者对比,取出前者有而后者没有的,不管后者由而前者没有的
127.0.0.1:6379> SMEMBERS set3
1) "0"
2) "1"
3) "5"
4) "8"
5) "9"
127.0.0.1:6379> SMEMBERS set2
1) "1"
2) "3"
3) "4"
4) "6"
5) "8"
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "5"
5) "7"

#对比
127.0.0.1:6379> SDIFF set1 set2
1) "2"
2) "5"
3) "7"
#三者对比
127.0.0.1:6379> SDIFF set1 set2 set3
1) "2"
2) "7"

2.有序集合 sorted-set

应用场景:
排行榜应用,取TOP N操作
这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,这时候就需要我们的sorted set出马了,将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。

1)添加数据

#添加一个数据
127.0.0.1:6379> ZADD linux9 90 banzhang 80 shengwei 50 jiwei 20 tiwei 100 xuewei
(integer) 5

2)查看数据

#查看排序后数据
127.0.0.1:6379> ZRANGE linux9 0 -1
1) "tiwei"
2) "jiwei"
3) "shengwei"
4) "banzhang"
5) "xuewei"

#查看排序及排序依据
127.0.0.1:6379> ZRANGE linux9 0 -1 WITHSCORES
 1) "tiwei"
 2) "20"
 3) "jiwei"
 4) "50"
 5) "shengwei"
 6) "80"
 7) "banzhang"
 8) "90"
 9) "xuewei"
10) "100"

#查看排序及排序依据(倒叙)
127.0.0.1:6379> ZREVRANGE linux9 0 -1 WITHSCORES
 1) "xuewei"
 2) "100"
 3) "banzhang"
 4) "90"
 5) "shengwei"
 6) "80"
 7) "jiwei"
 8) "50"
 9) "tiwei"
10) "20"

#查看指定成员的分数
127.0.0.1:6379> ZSCORE linux9 xuewei
"100"

#查看成员的数量
127.0.0.1:6379> ZCARD linux9
(integer) 5

#查看符合条件范围的成员
127.0.0.1:6379> ZCOUNT linux9 50 100
(integer) 4
127.0.0.1:6379> ZRANGEBYSCORE linux9 50 100
1) "jiwei"
2) "shengwei"
3) "banzhang"
4) "xuewei"
127.0.0.1:6379> ZRANGEBYSCORE linux9 50 100 WITHSCORES
1) "jiwei"
2) "50"
3) "shengwei"
4) "80"
5) "banzhang"
6) "90"
7) "xuewei"
8) "100"

3)修改数据

#修改数据的值,排行榜顺序也会改变
127.0.0.1:6379> ZINCRBY linux9 100 tiwei
"120"
127.0.0.1:6379> ZREVRANGE linux9 0 -1 WITHSCORES
 1) "tiwei"
 2) "120"
 3) "xuewei"
 4) "100"
 5) "banzhang"
 6) "90"
 7) "shengwei"
 8) "80"
 9) "jiwei"
10) "50"

4)删除数据

#删除集合中指定成员
127.0.0.1:6379> zrem linux9 shengwei 
(integer) 1
127.0.0.1:6379> ZREVRANGE linux9 0 -1 WITHSCORES
1) "tiwei"
2) "120"
3) "xuewei"
4) "100"
5) "banzhang"
6) "90"
7) "jiwei"
8) "50"

#删除整个key
127.0.0.1:6379> del linux9
(integer) 1
posted @ 2020-08-16 19:49  JoJoblog  阅读(85)  评论(0)    收藏  举报