您的位置:首页 > 数据库 > Redis

Redis系列-set类型和zset类型

2013-11-01 20:48 621 查看

set类型

Set是集合,它是string类型的无序集合。

set是通过hash table 实现的,添加、删除和查找的复杂度都是0(1)。

对集合我们可以取并集、交集、差集。

sadd
向名称为key的set中添加元素

sadd myset "hello"

smembers 查看集合

smembers
myset

srem 删除元素

srem myset
"one" 返回1 删除成功 返回0 删除失败



spop
随机返回并删除名称为key的set中的一个元素

spop
myset

sdiff
返回所有给定key与第一个key的差集

sdiff
myset1 myset2 (以前面一个为标准)



sdiffstore
返回所有给定key与第一个key的差集,并将结果存为另外一个key.

sdiffstore
myset3 myset1 myset2 # 将 myset1 myset2 的差集存到myset3里面(以myset1为基准)



sinter
返回给定key的交集

sinter
myset4 myset5



sinterstore
将交集存储到另外一个集合 sinterstore myset6 myset1 myset2 (与sdiffstore类似)

sunion
并集

sunion
myset1 myset2

sunionstore
取并集存到新的set

sunionstore
myset7 myset1 myset2 #返回插入的元素个数



smove
从第一个key对应的set中移除member并添加到第二个对应的set中

smove
myset2 myset7 three #成功返回1 失败返回0



scard
查看集合的个数 scard myset2

sismember
测试member是否是名称为key的set的元素

sismember
myset2 two 是返回1 不是返回0

srandmember
随机返回 (因为set无序)

srandmember
myset7

sorted
sets 类型

sorted
set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,

每次指定后,zset会自动重新按新的值调整顺序,可以理解为由两列的mysql,一列存value,一列存顺序。

其中key理解为zset的名字.

zadd
添加元素

zadd
myzset 1 "one"

zadd
myzset 2 "two"

zadd
myzset 3 "three"

zrange
myzset 0 -1 withscores

这里的0和-1代表的是索引
withscores 输出顺序号



zrem
删除名称为key的zset中的元素

zrem
myzset two

zincrby
以指定值来增加(减少)顺序 对数序号进行加减

如果在名称为key的zset中,已经存在元素member,则该元素的sroce增加increment,

否则向该集合添加元素,其score的值为incrnment
zincrby myzset 2 one



再比如 four这个元素是不存在的



zrank 返回名称为key的zset中的member元素的排名 (按score从小到大排序) 即下标
zrank myzset two



zrevrank
反转 按照score从大到小排名 zrevrank myzset two

zrevrange
逆序 降序排序
zrevrange
myzset 0 -1 withscores



zrangebyscore 返回下标在给定区间的元素
zrangebyscore
myzset 2 3 withscore

zcount
返回集合中score在给定区间中的数量
zcount
myzset 2 3

zcard
返回集合中所有元素的个数
zcard
myzset

zremrangebyrank删除集合中在给定区间的元素
按照下标删除
zremrangebyrank
myzset 1 2

zremrangebyscore删除集合中给定区间的元素
按照顺序删除
zremrangebyscore
myzset 1 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: