四、Redis set类型
set是string类型的无序集合,是通过hash table实现的,增删查的复杂度都是0/1,对集合可以取并集,交集,差集
并集:合并两个集合的数据,取出重复的数据 交集:取两个集合中相同的数据 差集:取两个集合中不同的数据,交集的相反
基本操作命令:
sadd key member [member .......] 向一个set集合中插入数据,可以同时插入多个,返回值为插入数据的数量,代表插入成功,已存在的数据不会重复插入
例:sadd set 1 2 3 4 5 6 返回值 6,代表插入六条数据,再次执行 sadd set 1 7 8 9,会返回3,因为值 1 已存在,所有第二次只会插入7 8 9,成功三条
smembers key 查看一个set集合中所有的数据
srem key member [member.....] 从一个set集合中删除元素,可同时删除多个,返回值为删除元素的个数
spop key [count] 从一个set集合内随机弹出count个元素,返回弹出的元素值
sdiff key [key...] 取差集,以第一个key为参照,例:set1中包含1 2 3,而set2中 1 2,sdiff set1 set2 值为3,若反过来则没有差集,(返回第一个key在第二个key中不存在的值)
sdiffstore destination key [key ...] 取出差集后,存入新的set集合内
sinter key [key ...] 取交集,两个set集合内相同的值
sinterstore destination key [key ...] 将交集存入一个新的set集合
sunion key [key ...] 去两个集合中的并集
sunionstore destination key [key ...] 并集存入新的set集合
smove source destination member 把member从source的集合移动destination集合内
scard key 返回一个集合内元素的个数
sismember key member 判断一个集合内是否存在某个元素,1位存在,0不存在
srandmember key [count] 从一个集合内随机返回count个元素
五、Redis sorted set有序集合类型
set集合的有序版本,每添加一个元素时可以指定顺序,顺序属性在添加修改元素时可以指定,每次指定后,zset会自动按新的值调整顺序
zadd key score member [score member....] 向集合内添加新元素,score为顺序,member为对应的值
zrange zset1 0 -1 withscores 取值,withscores为是否显示顺序值,升序排序,从小到大
zset集合内的值是唯一的,但值的顺序号可被更改
zrem zst1 member [member ...] 删除方法
zincrby zset1 increment member 对顺序自增,increment为增加的数量,member代表对哪个元素自增,返回值为自增后的顺序值
zrank key member 返回指定member值在集合中的下标位置,按照顺序从小到大排序
zrecrank key member 效果与上相同,但是排序从大到小计算,返回值正好与上述相反
zrevrange zset1 0 -1 withscores 同为取值,排序为降序,从大到小
zrangebyscore key min max withscores 按照排序序号取值
zcount key min max 获得score给定区间内元素的数量
zcard key 返回集合中所有元素的数量
zremrangebyrank key start stop 删除集合中start-stop下标范围内的数据
zremrangebyscore key min max 删除集合中min-max排序范围内的数据