set 无序集合

集合的性质: 唯一性,无序性,确定性

注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素

但,因为集合的无序性,无法通过下标或范围来访问部分元素.

因此想看元素,要么随机先一个,要么全选

Redis 127.0.0.1:6379>SADD person zhangsan

redis 127.0.0.1:6379>SADD person lisi

redis 127.0.0.1:6379>SADD person wangwu

redis 127.0.0.1:6379>SADD person lisi

redis 127.0.0.1:6379>SMEMBERS person

1) wangwu

2) zhangsan

3) lisi

-----------------------------------------------

也可以一次性设置值:

redis 127.0.0.1:6379>SADD person zhangsan lisi wangwu lisi

redis 127.0.0.1:6379>SMEMBERS person

1) wangwu

2) zhangsan

3) lisi

sadd key  value1 value2

作用: 往集合key中增加元素

srem value1 value2

作用: 删除集合中集为 value1 value2的元素

返回值: 忽略不存在的元素后,真正删除掉的元素的个数

spop key

作用: 返回并删除集合中key中1个随机元素

随机--体现了无序性

srandmember key

作用: 返回集合key中,随机的1个元素.

sismember key  value

作用: 判断value是否在key集合中

是返回1,否返回0

smembers key

作用: 返回集中中所有的元素

scard key

作用: 返回集合中元素的个数

smove source dest value

作用:把source中的value删除,并添加到dest集合中

sinter  key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并返回

redis 127.0.0.1:6379> sadd s1 0 2 4 6

(integer) 4

redis 127.0.0.1:6379> sadd s2 1 2 3 4

(integer) 4

redis 127.0.0.1:6379> sadd s3 4 8 9 12

(integer) 4

redis 127.0.0.1:6379> sinter s1 s2 s3

1) "4"

redis 127.0.0.1:6379> sinter s3 s1 s2

1) "4"

sinterstore dest key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并赋给dest

suion key1 key2.. Keyn

作用: 求出key1 key2 keyn的并集,并返回

sdiff key1 key2 key3

作用: 求出key1与key2 key3的差集

即key1-key2-key3

order set 有序集合

redis有序集合和无序集合一样也是string类型元素的集合,且不允许重复的成员

redis 127.0.0.1:6379>ZADD person 3 zhangsan

redis 127.0.0.1:6379>ZADD person 2 lisi

redis 127.0.0.1:6379>ZADD person 1 wangwu

redis 127.0.0.1:6379>ZADD person 4 zhaoliu

redis 127.0.0.1:6379>ZRANGE person 0 -1

1) wangwu

2) lisi

3) zhangsan

4) zhaoliu

-----------------------------------------------

也可以一次性设置值:

redis 127.0.0.1:6379>ZADD person 3 zhangsan 2 lisi 1 wangwu 4 zhaoliu

redis 127.0.0.1:6379>ZRANGE person 0 -1

1) wangwu

2) lisi

3) zhangsan

4) zhaoliu

zadd key score1 value1 score2 value2 ..

添加元素

redis 127.0.0.1:6379> zadd stu 18 lily19 hmm 20 lilei 21 lilei

(integer) 3

zrem key value1 value2 ..

作用: 删除集合中的元素

zremrangebyscore key min max

作用: 按照socre来删除元素,删除score在[min,max]之间的

redis 127.0.0.1:6379> zremrangebyscorestu 4 10

(integer) 2

redis 127.0.0.1:6379> zrange stu 0 -1

1) "f"

zremrangebyrank key start end

作用: 按排名删除元素,删除名次在[start,end]之间的

redis 127.0.0.1:6379> zremrangebyrankstu 0 1

(integer) 2

redis 127.0.0.1:6379> zrange stu 0 -1

1) "c"

2) "e"

3) "f"

4) "g"

zrank key member

查询member的排名(升续 0名开始)

zrevrank key memeber

查询 member的排名(降续 0名开始)

ZRANGE key start stop [WITHSCORES]

把集合排序后,返回名次[start,stop]的元素

默认是升续排列

Withscores 是把score也打印出来

zrevrange key start stop

作用:把集合降序排列,取名字[start,stop]之间的元素

zrangebyscore  key minmax [withscores] limit offset N

作用: 集合(升续)排序后,取score在[min,max]内的元素,

并跳过 offset个, 取出N个

redis 127.0.0.1:6379> zadd stu 1 a 3 b 4c 9 e 12 f 15 g

(integer) 6

redis 127.0.0.1:6379> zrangebyscore stu3 12 limit 1 2 withscores

1) "c"

2) "4"

3) "e"

4) "9"

zcard key

返回元素个数

zcount key min max

返回[min,max] 区间内元素的数量

zinterstore destination numkeys key1 [key2 ...]

[WEIGHTS weight [weight ...]]

[AGGREGATE SUM|MIN|MAX]

求key1,key2的交集,key1,key2的权重分别是 weight1,weight2

聚合方法用: sum|min|max

聚合的结果,保存在dest集合内

注意: weights,aggregate如何理解?

答: 如果有交集, 交集元素又有socre,score怎么处理?

Aggregate sum->score相加  , min 求最小score, max 最大score

另: 可以通过weigth设置不同key的权重, 交集时,socre * weights

详见下例

redis 127.0.0.1:6379> zadd z1 2 a 3 b 4c

(integer) 3

redis 127.0.0.1:6379> zadd z2 2.5 a 1 b8 d

(integer) 3

redis 127.0.0.1:6379> zinterstore tmp 2z1 z2

(integer) 2

redis 127.0.0.1:6379> zrange tmp 0 -1

1) "b"

2) "a"

redis 127.0.0.1:6379> zrange tmp 0 -1withscores

1) "b"

2) "4"

3) "a"

4) "4.5"

redis 127.0.0.1:6379> zinterstore tmp 2z1 z2 aggregate sum

(integer) 2

redis 127.0.0.1:6379> zrange tmp 0 -1withscores

1) "b"

2) "4"

3) "a"

4) "4.5"

redis 127.0.0.1:6379> zinterstore tmp 2z1 z2 aggregate min

(integer) 2

redis 127.0.0.1:6379> zrange tmp 0 -1withscores

1) "b"

2) "1"

3) "a"

4) "2"

redis 127.0.0.1:6379> zinterstore tmp 2z1 z2 weights 1 2

(integer) 2

redis 127.0.0.1:6379> zrange tmp 0 -1withscores

1) "b"

2) "5"

3) "a"

4) "7"

最新文章

  1. [OpenCV] Samples 01: drawing
  2. yum源的配置(centos6.5)
  3. FUSE 简介
  4. libtcc使用问题一二
  5. Android 反编译apk 详解
  6. iepngfix.htc让PNG-24在IE6中透明的方法(转)
  7. 纯css做的安卓开机动画
  8. 控制器 - URL routing HTTP module(一)
  9. SQL Server手工插入标识列
  10. zombie-phantom
  11. VS2015自定义注释内容
  12. 伸展树(Splay树)的简要操作
  13. win10安装sqlserver2016准备
  14. Spring Cloud构建微服务架构(二)服务消费者
  15. 一个GIS开源工具集架构的总结
  16. react组件开发规范总结
  17. bmp和Variant的转换
  18. Cassandra的数据模型
  19. lastIndexOf()
  20. DateTime获取一个月的第一天和最后一天

热门文章

  1. Java中的Lock与synchronized
  2. CSRF与xss的区别
  3. 八爪鱼采集器︱加载更多、再显示20条图文教程(Xpatth、Ajax)
  4. Java的Random总结
  5. javascript 学习笔记 三大特性
  6. PHP simpleXML文件编程
  7. visualSFM的使用方法
  8. 求sum=1+111+1111+........+1....111 .
  9. RAID10与RAID01比较,RAID10与RAID5比较
  10. Linux显示USB设备