首页 > 学院 > 开发设计 > 正文

Redis基础教程三

2019-11-10 18:43:18
字体:
来源:转载
供稿:网友

一. 无序集合类型(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 c

3.smembers : 查询集合

redis> smembers list

4.sismember : 查询元素是否在集合中,时间复杂度为O(1),在返回(integer)1,否则返回(integer)0

redis> sismember list a // (integer)0

5.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 3

7.sunion : 并集

redis>sunion A B // 1 2 3 4

8.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的分数修改成98

2.zscore : 获取元素的分数

redis> zscore grade Tom

3.zrange : 获取分数在某范围的元素列表

redis>zrange grade 0 1 // "Tom" "Peter"redis>zrange grade 0 -1 withscores //显示全部并带有分数。

4.zrangebyscore : 获取指定分数范围的元素列表

redis>zrangebyscore grade 80 100 // Tom David

5.zincrby : 增加某元素的分数

redis> zincrby grade 20 Peter // 跟Peter 加20redis> zincrby grade -20 Peter // 减20

6.zcard key : 求集合元素个数

7.zcount key min max : 获取指定分数范围内的元素个数

8.zrem : 删除一个或多个

redis>zrem grade Tom David

持续更新….

老生常谈:深圳有爱好音乐的会打鼓(吉他,键盘,贝斯等)的程序员和其它职业可以一起交流加入我们乐队一起嗨。我的QQ:657455400


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表