redis之set 集合命令详解
2017-05-08 10:30
417 查看
集合 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
注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
但,因为集合的无序性,无法通过下标或范围来访问部分元素.
因此想看元素,要么随机先一个,要么全选
返回值: 忽略不存在的元素后,真正删除掉的元素的个数
随机–体现了无序性
是返回1,否返回0
即key1-key2-key3
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
集合 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的元素返回值: 忽略不存在的元素后,真正删除掉的元素的个数
<?php var_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) 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"
<?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" b224 [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"}
相关文章推荐
- redis必杀命令:有序集合(sorted set)
- redis-集合set相关命令
- redis命令参考(四) set集合
- 06 redis中set结构及命令详解
- redis必杀命令:集合(Set)
- redis 遇到的“坑”——set集合 Sdiffstore 命令
- redis中的set集合+相关命令
- Redis的Sorted Set有序集合命令
- Redis从基础命令到实战之集合类型(Set)
- Redis从基础命令到实战之有序集合类型(SortedSet)
- 【redis基础篇三】set集合常用命令
- Redis 与集合(Set)相关的命令
- redis命令之集合(set)
- redis 集合 set 相关命令
- redis无序集合set类型详解
- JAVAWEB开发之redis学习(四)——Set集合相关的操作命令
- Redis(5)之set结构及命令详解
- Redis数据类型与指令详解之集合(t_set)
- redis有序集合sorted set详解
- redis中set集合的命令