Redis set基本操作
set中的值不可以重复
sadd:插入
smembers:查看所有值
sismember:判断是否在集合里
scard:查询set集合中元素的个数
127.0.0.1:6379> sadd set "hello"
(integer) 1
127.0.0.1:6379> sadd set "hello1"
(integer) 1
127.0.0.1:6379> smembers set
1) "hello1"
2) "hello"
127.0.0.1:6379> sismember set hello
(integer) 1
127.0.0.1:6379> sismember set hello2
(integer) 0
127.0.0.1:6379> scard set
(integer) 2
srem:移除指定元素
127.0.0.1:6379> srem set hello1
(integer) 1
127.0.0.1:6379> smembers set
1) "hello"
set是无序不重复集合,可以抽随机
srandmember:抽随机
127.0.0.1:6379> smembers set
1) "3"
2) "1"
3) "2"
4) "hello"
127.0.0.1:6379> srandmember set
"2"
127.0.0.1:6379> srandmember set #随机抽一个
"hello"
127.0.0.1:6379> srandmember set 2 #随机抽两个
1) "1"
2) "hello"
127.0.0.1:6379> srandmember set 2
1) "3"
2) "1"
spop:随机删除
127.0.0.1:6379> smembers set
1) "3"
2) "1"
3) "2"
4) "hello"
127.0.0.1:6379> spop set #随机删除一个元素
"3"
127.0.0.1:6379> spop set
"2"
127.0.0.1:6379> smembers set
1) "1"
2) "hello"
smove:将一个指定的值移入到另一个set集合
127.0.0.1:6379> sadd set "1"
(integer) 1
127.0.0.1:6379> sadd set "2"
(integer) 1
127.0.0.1:6379> sadd set1 "3"
(integer) 1
127.0.0.1:6379> sadd set1 "4"
(integer) 1
127.0.0.1:6379> smove set set1 1
(integer) 1
127.0.0.1:6379> smembers set1
1) "1"
2) "3"
3) "4"
数字集合类:
- 差集
- 交集
- 并集
127.0.0.1:6379> smembers key1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> smembers key2
1) "d"
2) "e"
3) "c"
127.0.0.1:6379> sdiff key1 key2 #差集
1) "a"
2) "b"
127.0.0.1:6379> sinter key1 key2 #交集
1) "c"
127.0.0.1:6379> sunion key1 key2 #并集
1) "b"
2) "c"
3) "d"
4) "a"
5) "e"
比如微博,用户可以将关注的人放在一个set集合中,将他的粉丝也放入一个集合中。可以实现共同关注的功能
Redis Zset基本操作
在set的基础上,增加了一个值(排序,分组)
zadd:增加值
zrange:查找
127.0.0.1:6379> zadd myset 1 one
(integer) 1
127.0.0.1:6379> zadd myset 2 two 3 three
(integer) 2
127.0.0.1:6379> zrange myset 0 -1
1) "one"
2) "two"
3) "three"
排序:
127.0.0.1:6379> zadd age 17 xiaoming
(integer) 1
127.0.0.1:6379> zadd age 20 xiaohong
(integer) 1
127.0.0.1:6379> zadd age 16 mike
(integer) 1
127.0.0.1:6379> zrangebyscore age -inf +inf #按从小到大排序显示全部
1) "mike"
2) "xiaoming"
3) "xiaohong"
127.0.0.1:6379> zrevrange age 0 -1 #从大到小排序
1) "xiaohong"
2) "xiaoming"
3) "mike"
127.0.0.1:6379> zrangebyscore age -inf +inf withscores #从小到大显示全部
1) "mike"
2) "16"
3) "xiaoming"
4) "17"
5) "xiaohong"
6) "20"
127.0.0.1:6379> zrangebyscore age -inf 18 withscores #显示小于18的用户
1) "mike"
2) "16"
3) "xiaoming"
4) "17"
zrem:移除
127.0.0.1:6379> zrange age 0 -1
1) "mike"
2) "xiaoming"
3) "xiaohong"
127.0.0.1:6379> zrem age mike
(integer) 1
127.0.0.1:6379> zrange age 0 -1
1) "xiaoming"
2) "xiaohong"
127.0.0.1:6379> zcard age #获取集合中的个数
(integer) 2
zcount:获取指定区间的数量
127.0.0.1:6379> zcount myset 1 3
(integer) 3
127.0.0.1:6379> zcount myset 1 2
(integer) 2