redis之set 集合命令详解
来源:互联网 发布:如何生成数据字典 编辑:程序博客网 时间:2024/05/18 02:14
- 集合 set 相关命令
- sadd key value1 value2
- 作用 往集合key中增加元素
- srem value1 value2
- spop key
- srandmember key
- sismember key value
- smembers key
- scard key
- smove source dest value
- sinter key1 key2 key3
- sinterstore dest key1 key2 key3
- sunion key1 key2 Keyn
- sdiff key1 key2 key3
- sadd key value1 value2
集合 set 相关命令
集合的性质: 唯一性,无序性,确定性
注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
但,因为集合的无序性,无法通过下标或范围来访问部分元素.
因此想看元素,要么随机先一个,要么全选
sadd key value1 value2
作用: 往集合key中增加元素
<?php$redis->sAdd('k', 'v1');// int(1)$redis->sAdd('k', 'v1', 'v2', 'v3');// int(2)
srem value1 value2
作用: 删除集合中集为 value1 value2的元素
返回值: 忽略不存在的元素后,真正删除掉的元素的个数
<?phpvar_dump( $redis->sAdd('k', 'v1', 'v2', 'v3') );// int(3)var_dump( $redis->sRem('k', 'v2', 'v3') );// int(2)var_dump( $redis->sMembers('k') ); // array(1) {[0]=> string(2) "v1"}
spop key
作用: 返回并删除集合中key中1个随机元素
随机–体现了无序性
<?php$redis->sAdd('key1' , 'set1');$redis->sAdd('key1' , 'set2');$redis->sAdd('key1' , 'set3');// 'key1' => {'set3', 'set1', 'set2'}$redis->sPop('key1');// 'set1', 'key1' => {'set3', 'set2'}$redis->sPop('key1');// 'set3', 'key1' => {'set2'}
srandmember key
作用: 返回集合key中,随机的1个元素.
<?php$redis->sAdd('key1' , 'set1');$redis->sAdd('key1' , 'set2');$redis->sAdd('key1' , 'set3');// 'key1' => {'set3', 'set1', 'set2'}$redis->sRandMember('key1');// 'set1', 'key1' => {'set3', 'set1', 'set2'}$redis->sRandMember('key1');// 'set3', 'key1' => {'set3', 'set1', 'set2'}
sismember key value
作用: 判断value是否在key集合中
是返回1,否返回0
<?php$redis->sAdd('key1' , 'set1');$redis->sAdd('key1' , 'set2');$redis->sAdd('key1' , 'set3');//'key1' => {'set1', 'set2', 'set3'}$redis->sIsMember('key1', 'set1');//TRUE$redis->sIsMember('key1', 'setX');//FALSE
smembers key
作用: 返回集中中所有的元素
<?php$redis->delete('s');$redis->sAdd('s', 'a');$redis->sAdd('s', 'b');$redis->sAdd('s', 'a');$redis->sAdd('s', 'c');var_dump($redis->sMembers('s'));//array(3) {[0]=>string(1) "c" [1]=>string(1) "a" [2]=>string(1) "b"}//集合顺序是随机的,对应于Redis本身内部的结构表征。
scard key
作用: 返回集合中元素的个数
<?php$redis->sAdd('key1' , 'set1');$redis->sAdd('key1' , 'set2');$redis->sAdd('key1' , 'set3');// 'key1' => {'set1', 'set2', 'set3'}$redis->sCard('key1');// 3$redis->sCard('keyX');// 0
smove source dest value
作用:把source中的value删除,并添加到dest集合中
<?php$redis->sAdd('key1' , 'set11');$redis->sAdd('key1' , 'set12');$redis->sAdd('key1' , 'set13');// 'key1' => {'set11', 'set12', 'set13'}$redis->sAdd('key2' , 'set21');$redis->sAdd('key2' , 'set22');// 'key2' => {'set21', 'set22'}$redis->sMove('key1', 'key2', 'set13');// 'key1' => {'set11', 'set12'}// 'key2' => {'set21', 'set22', 'set13'}
sinter key1 key2 key3
作用: 求出key1 key2 key3 三个集合中的交集,并返回
redis 127.0.0.1:6379> sadd s1 0 2 4 6(integer) 4redis 127.0.0.1:6379> sadd s2 1 2 3 4(integer) 4redis 127.0.0.1:6379> sadd s3 4 8 9 12(integer) 4redis 127.0.0.1:6379> sinter s1 s2 s31) "4"redis 127.0.0.1:6379> sinter s3 s1 s21)"4"
<?php$redis->sAdd('key1', 'val1');$redis->sAdd('key1', 'val2');$redis->sAdd('key1', 'val3');$redis->sAdd('key1', 'val4');$redis->sAdd('key2', 'val3');$redis->sAdd('key2', 'val4');$redis->sAdd('key3', 'val3');$redis->sAdd('key3', 'val4');var_dump($redis->sInter('key1', 'key2', 'key3'));//array(2) {[0]=>string(4) "val4" [1]=>string(4) "val3"}
sinterstore dest key1 key2 key3
作用: 求出key1 key2 key3 三个集合中的交集,并赋给dest
<?php$redis->sAdd('key1', 'val1');$redis->sAdd('key1', 'val2');$redis->sAdd('key1', 'val3');$redis->sAdd('key1', 'val4');$redis->sAdd('key2', 'val3');$redis->sAdd('key2', 'val4');$redis->sAdd('key3', 'val3');$redis->sAdd('key3', 'val4');var_dump($redis->sInterStore('dest', 'key1', 'key2', 'key3'));//int(2)var_dump($redis->sMembers('dest'));//array(2) {[0]=>string(4) "val4" [1]=>string(4) "val3"}
sunion key1 key2.. Keyn
作用: 求出key1 key2 keyn的并集,并返回
<?php$redis->sAdd('s0', '1');$redis->sAdd('s0', '2');$redis->sAdd('s1', '3');$redis->sAdd('s1', '1');$redis->sAdd('s2', '3');$redis->sAdd('s2', '4');var_dump($redis->sUnion('s0', 's1', 's2'));//array(4) { [0]=> string(1) "3" [1]=> string(1) "4" [2]=> string(1) "1" [3]=> string(1) "2"}
sdiff key1 key2 key3
作用: 求出key1与key2 key3的差集
即key1-key2-key3
<?php$redis->delete('s0', 's1', 's2');$redis->sAdd('key1'1');$redis->sAdd('key1'2');$redis->sAdd('key1'3');$redis->sAdd('key1'4');$redis->sAdd('key2', '1');$redis->sAdd('key3', '3');var_dump($redis->sDiff('key1', 'key2', 'key3'));//array(2) {[0]=> string(1) "4" [1]=> string(1) "2"}
0 0
- redis之set 集合命令详解
- redis set集合结构及命令详解
- redis之set集合
- redis-集合set相关命令
- redis 集合 set 相关命令
- Redis从基础命令到实战之集合类型(Set)
- redis学习笔记四之基础命令—set集合
- Redis之Set 集合类型
- Redis之集合命令
- Redis命令学习-Set(集合)
- redis集合set的相关命令
- redis中的set集合+相关命令
- Redis 与集合(Set)相关的命令
- redis中set集合的命令
- redis必杀命令:集合(Set)
- Redis集合(set)的命令操作
- redis无序集合set类型详解
- redis有序集合sorted set详解
- 深度学习与机器学习中开源图片数据库汇总
- 免费的论文查重网站
- (十四)RabbitMQ消息队列-启用SSL安全通讯
- 存储空间的分配和释放
- MFC GDI+双缓冲
- redis之set 集合命令详解
- java基础编程笔记3
- 端口号被占用
- 线程总结
- 解决HttpURLConnection setConnectTimeout超时无响应的问题
- 用java实现从txt文本文件批量导入数据至数据库
- Easy-34
- centos 7下启动mysql失败问题及 解决
- Android自定义view绘制圆环占比动画