一. 无序集合类型(Set)
集合中的每个元素都是不同的,且没有顺序。一个Set类型键可以存储至多2的32次方-1个字符串。集合在Redis内部是使用值为空的散列表(hash table) 实现的。集合:无序,唯一。列表:有序,不唯一。1.sadd : 添加元素到末尾
redis>sadd list a b c d // 如果键不存在创建,如果集合里面有这个值了,就会忽略,返回添加成功的条数。2.srem : 删除元素
redis> srem list a c // 删除 a c3.smembers : 查询集合
redis> smembers list4.sismember : 查询元素是否在集合中,时间复杂度为O(1),在返回(integer)1,否则返回(integer)0
redis> sismember list a // (integer)05.sdiff : 用来对多个集合执行差集运算
// 集合 A : 1 2 3// 集合 B : 2 3 4redis>sdiff A B // 差集(属于集合A且不属于集合B构成的集合),⇒ 1)"1"6.sinter : 交集
// 集合 A : 1 2 3// 集合 B : 2 3 4redis>sinter A B // 交集 2 37.sunion : 并集
redis>sunion A B // 1 2 3 48.scard key : 获取集合长度
9.srandmember : 随机获取集合中的元素
redis>srandmember list // 随机获取list中的一个元素redis>srandmember list 2 // 随机获取两个二. 有序集合类型(sorted set)
1.列表通过链表实现的,获取靠近两端的数据速度极快。当元素增多后,访问中间的数据速度较慢,所以它更适合实现如“新鲜事”“日志”等很少访问中间元素的应用。2.有序集合使用散列表和跳跃表实现的,所以即使读取位于中间部分的数据速度也很快。3.列表中不能简单的调整某个元素的位置,但有序集合可以。4.有序集合要比列表更耗内存。1.zadd : 增加元素
redis>zadd grade 89 Tom 67 Peter 100 David // 构建一个有序集合redis> zadd grade 98 Tom // 把Tom的分数修改成982.zscore : 获取元素的分数
redis> zscore grade Tom3.zrange : 获取分数在某范围的元素列表
redis>zrange grade 0 1 // "Tom" "Peter"redis>zrange grade 0 -1 withscores //显示全部并带有分数。4.zrangebyscore : 获取指定分数范围的元素列表
redis>zrangebyscore grade 80 100 // Tom David5.zincrby : 增加某元素的分数
redis> zincrby grade 20 Peter // 跟Peter 加20redis> zincrby grade -20 Peter // 减206.zcard key : 求集合元素个数
7.zcount key min max : 获取指定分数范围内的元素个数
8.zrem : 删除一个或多个
redis>zrem grade Tom David持续更新….
老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400
新闻热点
疑难解答