Redis九种类型的方法及其时间复杂度

String类型

  • set key value O(1)

    • 设置key对应string类型的值,返回1表示成功,0失败。

  • setnx key value O(1)

    • 如果key不存在,设置key对应string类型的值。如果key已经存在,返回0。

  • get key O(1)

    • 获取key对应的string值,如果key不存在返回nil。

  • getset key value O(1)

    • 将给定 key 的值设为 value ,并返回 key 的旧值。

  • mget key1 ...... keyN O(n)

    • 一次获取多个key的值,如果对应key不存在,则对应返回nil。

  • mset key1value1 ...... keyN valueN O(n)

    • 一次设置多个key的值,成功返回1表示所有的值都设置了,失败返回0表示没有任何值被设置。

  • msetnx key1 value1 ...... keyN valueN O(n)

    • 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

  • decr key O(1)

    • 对key的值做--操作,decr一个不存在key,则key值为-1。

  • incrby key increment O(1)

    • 对key加上指定值,key不存在时候会设置key,并认为原来的value 是0。

  • decrby key decrement O(1)

    • 对key减去指定值。decrby是为了可读性,可以通过incrby一个负值来实现同样效果。

 

hash类型

  • hset key field value O(1)

    • 设置hash field为指定值,如果key不存在,则创建。

  • hget key field O(1)

    • 获取指定的hash field。

  • hmget key filed1....fieldN O(n)

    • 获取全部指定的hash filed。

  • hmset keyfiled1 value1 ...... filedN valueN O(n)

    • 同时设置hash的多个field。

  • hincrby key field increment O(1)

    • 将指定的字段加上指定值。成功返回hashfiled变更后的值。

  • hexists key field O(1)

    • 检测指定field是否存在。 hdelkey field 删除指定的hash field。

  • hlen key O(1)

    • 返回指定hash的field数量。 hkeys key 返回hash的所有字段。

  • hvals key O(n)

    • 返回hash的所有value。

  • hgetall O(n)

    • 返回hash的所有filed和value。

List类型

  • lpush key value O(n)

    • 在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。

  • rpush key value O(1~n)

    • 在key对应list的尾部添加字符串元素。

  • llen key O(1)

    • 返回key对应list的长度,如果key不存在返回0。

  • lrange key start stop O(n)

    • 返回指定区间内的元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素 ,key不存在返回空列表。

  • ltrim key start stop O(n)

    • 截取list指定区间内元素,成功返回1。

  • lset key index value O(n)

    • 通过索引设置列表元素的值。

  • lrem key count value O(n)

    • 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。count为0时候删除全部。

  • lpop key O(1)

    • 从list的头部删除并返回删除元素。如果key对应list不存在或者是空返回nil,如果key对应值不是list返回错误。

  • rpop key O(1)

    • 从list的尾部删除并返回删除元素。

  • blpop,brpop O(1)

    • 头部尾部删除。 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

Set类型

  • sadd key member O(n)

    • 添加一个string元素到key对应set集合中,成功返回1,如果元素以及在集合中则返回0。

  • srem key member O(n)

    • 从key对应set中移除指定元素,成功返回1。

  • scard key O(1)

    • 返回set的元素个数。

  • srandmember key O(n)

    • 同spop,随机取set中的一个元素,但是不删除元素。

  • spop key O(n)

    • 删除并返回key对应set中随机的一个元素。

  • sunion key1 key2 ...... keyN O(n)

    • 返回所有给定key的并集。

  • sdiff key1 key2 ...... keyN O(n)

    • 返回第一个集合与其他集合之间的差集。

  • smembers key O(n)

    • 返回集合中的所有元素,结果是无序的。

  • sinter key1 key2 …… keyN O(n)

    • 返回所有给定key的交集。

  • sinterstore dst key1 ....... keyN O(n)

    • 返回所有给定key的交集,并保存交集存到dst下。

Sorted Set类型

  • zadd key score member O(m*log(n))

    • 添加元素到集合,元素在集合中存在则更新对应score。

  • zrem key member O(m*log(n))

    • 删除指定元素,1 表示成功,如果元素不存在返回 0。

  • zrevrank key member O(log(n))

    • 返回有序集合中指定成员的排名,集合中元素是从大到小排序。

  • zrange key start stop O( log(n)+ m)

    • 通过索引区间返回有序集合指定区间内的成员。

  • zrevrange key start stop O(log(n))

    • 返回有序集中指定区间内的成员,返回结果是逆序的。

  • zcount key min max O( log(n)+ m)

    • 返回集合中在给定区间的数量。

  • zcard key O(1)

    • 返回集合中元素个数。

  • zscore key element O(1)

    • 返回给定元素对应的 score。

  • zremrangebyrank key start stop O( log(n)+ m)

    • 删除集合中排名在给定区间的元素。

  • zremrangebyscore key min max O( log(n)+ m)

    • 删除集合中 score 在给定区间的元素。

Geo类型

  • geoapdd key longitude latitude member [longitude latitude member ...] O(log(N))

    • 将给定的空间元素(纬度、经度、名字)添加到指定的键里面。

  • geopos key member [member ...] O(log(N))

    • 从键里面返回所有给定位置元素的位置(经度和纬度)。

  • geodist key member1 member2 [unit] O(log(N))

    • 返回两个给定位置之间的距离。如果两个位置之间的其中一个不存在, 那么命令返回空值。

  • georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count] O(N+log(M))

    • 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

HyperLogLog类型

  • pfmerge destkey sourcekey [sourcekey ...] O(N)

    • 将多个 HyperLogLog 合并为一个 HyperLogLog

  • pfadd key element [element ...] O(1)

    • 添加指定元素到 HyperLogLog 中。

  • pfcount key [key ...] O(1)

    • 返回给定 HyperLogLog 的基数估算值。

BitMap类型

  • setbit key offset value O(1)

    • 设置或修改key上的偏移量(offset)的位(value)的值。

  • getbit key offset O(1)

    • 查询key所存储的字符串值,获取偏移量上的位。

  • bitcount key [start] [end] O(N)

    • 计算给定key的字符串值中,被设置为1的位bit的数量

  • bitop and destkey key [key...] O(N)

    • 对一个或多个key逻辑并,结果保存到destkey。

Stream类型

  • xadd stream id field value [field value ...] O(1)

    • 添加元素到末尾。

  • xtrim steam maxlen len O(N)

    • 对流进行修剪,限制长度。

  • xdel stream [id id ... id] O(1)

    • 移除指定元素,返回值是被移除的元素的数量。

  • xlen stream O(1)

    • 获取流包含的元素数量。

  • xrange key start end [COUNT count] O(N)

    • XRANGE 获取消息列表,会自动过滤已经删除的消息。

  • xread [COUNT count] [BLOCK milliseconds] streams key [key ...] id [id ...] O(N)

    • 使用 XREAD 以阻塞或非阻塞方式获取消息列表 。

posted @ 2021-12-02 09:09  白snow  阅读(558)  评论(0编辑  收藏  举报