1.set(集合)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
复杂度:来自百度百科:
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等 于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
常用的一些指令(s开头):
->sadd key member 添加无重复成员
->scard key 得到集合长度
->sdiff key [key..] 返回集合差值
->sinter key [key..] 方法集合交集
->smembers key 得到集合的所有元素
->smove source destination member 将指定成员移动到目标集合
->srem key member[...] 移除元素
->sunion key [key..] 返回并集
->sunionstore destination key[key..] 返回并集并保存在目标集合
->sscan key cursor 迭代元素
2.sorted set
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
常用方法
->zadd key score member ... 添加成员并指定一个相对应的分数
->zcount key min max 查找范围内满足分数要求的数量
->zrange key min max 范围查member
->zrank key member 方法对应memb的索引
->zremrangebyrank 移除排名范围 区间的成员
->zremrangebyscore 移除给定分数 区间的成员
->zrevrangebyscore key max min 在分数区间从高到低排序
-> zrevrank key member 返回升序后列表中member的位置
->zscore key member 方法指定成员的分数