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 ,
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(1)
- 在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 以阻塞或非阻塞方式获取消息列表 。
更多推荐
所有评论(0)