04_NoSQL数据库之Redis数据库:set类型和zset类型(三)
wo"
?
127.0.0.1:6379> scard myset1 查看myset1中的元素个数
?
(integer) 2
?
127.0.0.1:6379> scard myset2 查看myset2中的元素个数
?
(integer) 3
?
127.0.0.1:6379> scard myset8
?
(integer) 1
?
127.0.0.1:6379>
?
?
?
sismember:测试member是否是名称为key的set的元素。(判断某个元素是否是某个集合中的元素,是返回1,不是返回0)
?
127.0.0.1:6379> smembers myset1
?
1) "five"
?
2) "one"
?
127.0.0.1:6379> sismember myset1 one 判断one是否是myset1中的元素
?
(integer) 1
?
127.0.0.1:6379> sismember myset1 two 判断two是否是myset1中的元素
?
(integer) 0
?
127.0.0.1:6379>
?
?
?
srandmember:随机返回名称为key的set的一个元素,但不删除元素。
?
?
?
127.0.0.1:6379> smembers myset1
?
1) "five"
?
2) "one"
?
127.0.0.1:6379> srandmember myset7
?
"three"
?
127.0.0.1:6379> srandmember myset7
?
"two"
?
127.0.0.1:6379> srandmember myset7
?
"four"
?
127.0.0.1:6379> srandmember myset7
?
"three"
?
?
?
Sorted sets类型及操作
?
Sortedset是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为由两列的
mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
?
?
?
zadd:向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新器顺序。语法:zadd set名称 顺序 值
?
127.0.0.1:6379> zadd myzset 1 "one"
?
(integer) 1
?
127.0.0.1:6379> zadd myzset 2 "two"
?
(integer) 1
?
127.0.0.1:6379> zadd myzset 3 "two"
?
(integer) 0
?
?
?
这里的0 -1表示顺序号 withscores表示的意思是带上顺序号。
?
127.0.0.1:6379> zrange myzset 0 -1 withscores
?
1) "one"
?
2) "1"
?
3) "two"
?
4) "3"
?
127.0.0.1:6379>
?
?
?
再如:
?
127.0.0.1:6379> zadd sset1 1 two
?
(integer) 1
?
127.0.0.1:6379> zadd sset1 2 two
?
(integer) 0
?
127.0.0.1:6379> zadd sset1 3 two
?
(integer) 0
?
127.0.0.1:6379> zadd sset1 1 one
?
(integer) 1
?
127.0.0.1:6379> zrange sset1 0 -1
?
1) "one"
?
2) "two"
?
127.0.0.1:6379> zrange sset1 0 -1 withscores
?
1) "one"
?
2) "1"
?
3) "two"
?
4) "3"
?
127.0.0.1:6379>
?
?
?
zrem:删除名称为key的zset中的元素member
?
127.0.0.1:6379> zrange sset1 0 -1 withscores
?
1) "one"
?
2) "1"
?
3) "two"
?
4) "3"
?
127.0.0.1:6379> zrem sset1 two
?
(integer) 1
?
127.0.0.1:6379> zrange sset1 0 -1 withscores
?
1) "one"
?
2) "1"
?
127.0.0.1:6379>
?
?
?
zincrby:如果在名称为key的zset中已经存在元素member,则该元素的score增加increment,否则向该集合中添加该元素,其score的值为increment。
?
127.0.0.1:6379> zrange sset1 0 -1 withscores
?
1) "one"
?
2) "1"
?
127.0.0.1:6379> zincrby sset1 2 one //将one的顺序号增加3,同样可以减2
?
"3" //表示one的顺序号变成了3
?
127.0.0.1:6379> zrange sset1 0 -1 withscores
?
1) "one"
?
2) "3" //one的序号变成了3
?
127.0.0.1:6379>
?
?
?
zrank:返回名称为key的zset中的member元素的排名。(按score从小到大排序)即下标。(返回的是索引值,和序号值是有差别的)
?
127.0.0.1:6379> zadd sset2 1 one
?
(integer) 1
?
127.0.0.1:6379> zadd sset2 2 two
?
(integer) 1
?
127.0.0.1:6379> zadd sset2 3 three
?
(integer) 1
?
127.0.0.1:6379> zadd sset2 4 four
?
(integer) 1
?
127.0.0.1:6379> zadd sset2 5 five
?
(integer) 1
?
127.0.0.1:6379> zrange sset2 0 -1 withscores
?
1) "one"
?
2) "1"
?
3) "two"
?
4) "2"
?
5) "three"
?
6) "3"
?
7) "four"
?