Redis常用数据结构常用命令总览

命令查询传送门

一,string类型

Redis远程字典服务器(4)—— string类型详解

命令执行效果时间复杂度
set key value [key value...]设置 key 的值是 valueO(k), k 是键个数
get key获取 key 的值O(1)
del key [key ...]删除指定的 keyO(k), k 是键个数
mset key value [key value ...]批量设置指定的 key 和 valueO(k), k 是键个数
mget key [key ...]批量获取 key 的值O(k), k 是键个数
incr key指定的 key 的值 +1O(1)
decr key指定的 key 的值 -1O(1)
incrby key n指定的 key 的值 +nO(1)
decrby key n指定的 key 的值 -nO(1)
incrbyfloat key n指定的 key 的值 +nO(1)
append key value指定的 key 的值追加 valueO(1)
strlen key获取指定 key 的值的⻓度O(1)
setrange key offset value覆盖指定 key 的从 offset 开始的部分值O(n),n 是字符 串⻓度, 通常视 为 O(1)
getrange key start end获取指定 key 的从 start 到 end 的部分值O(n),n 是字符 串⻓度, 通常视 为 O(1)

二,hash类型

Redis远程字典服务器(5) —— hash类型详解

命令执行效果时间复杂度
hset key field value设置值O(1)
hget key field获取值O(1)
hdel key field [field ...]删除 fieldO(k), k 是 field 个数
hlen key计算 field 个数O(1)
hgetall key获取所有的 field-valueO(k), k 是 field 个数
hmget field [field ...]批量获取 field-valueO(k), k 是 field 个数
hmset field value [field value ...]批量获取 field-valueO(k), k 是 field 个数
hexists key field判断 field 是否存在O(1)
hkeys key获取所有的 fieldO(k), k 是 field 个数
hvals key获取所有的 valueO(k), k 是 field 个数
hsetnx key field value设置值,但必须在 field 不存在时才能设置成功O(1)
hincrby key field n对应 field-value +nO(1)
hincrbyfloat key field n对应 field-value +nO(1)
hstrlen key field计算 value 的字符串⻓度O(1)

三,list类型

Redis远程字典服务器(6) —— list类型详解-CSDN博客

操作类型命令时间复杂度
添加rpush key value [value ...]O(k),k 是元素个数
lpush key value [value ...]
linsert key before | after pivot valueO(n),n 是 pivot 距离头尾的距离
查找lrange key start endO(s+n),s 是 start 偏移量,n 是 start 到 end 的范围
lindex key indexO(n),n 是索引的偏移量
llen keyO(1)
删除lpop keyO(1)
rpop key
lremkey count valueO(k),k 是元素个数
ltrim key start end
修改set key index valueO(n),n 是索引的偏移量
阻塞操作blpop brpopO(1)

 

四,set类型

Redis远程字典服务器(7)—— set类型详解

命令执行效果时间复杂度
sadd key element [element ...]添加O(k),k 是元素个数
srem key element [element ...]删除O(k),k 是元素个数
scard key返回set元素总数O(1)
sismember key element判断一个元素是否在set中O(1)
srandmember key [count]随机读取一个数O(n),n 是 count
spop key [count]随机删除一个或多个数O(n),n 是 count
smembers key获取set中的所有元素O(k),k 是元素个数
sinter key [key ...] sitnerstore求交集O(m * k),k 是⼏个集合中元素最⼩的个数,m 是键个数
sunion key [key ...] sunionstore求并集O(k),k 是多个集合的元素个数总和
sdiff key [key ...] sdiffstore求差集O(k),k 是多个集合的元素个数总和

五,zset类型

Redis远程字典服务器(8)—— zset类型详解-CSDN博客

命令执行效果时间复杂度
zadd key score member [score member ...]往集合中添加或修改元素和分数O(k * log(n)),k 是添加成员的个数,n 是当前有序集合的元 素个数
zcard key获取集合中的元素个数O(1)
zscore key member查询指定member的分数O(1)

zrank key member

zrevrank key membe

顺序或逆序获取member的排名O(log(n)),n 是当前有序集合的元素个数
zrem key member [member ...]删除指定的memberO(k * log(n)),k 是删除成员的个数,n 是当前有序集合的元 素个数
zincrby key increment member对指定member的score进行加法运算O(log(n)),n 是当前有序集合的元素个数

zrange key start end [withscores]

zrevrange key start end [withscores]

顺序或逆序查看指定的一对下标构成的区间的值O(k + log(n)),k 是获取成员的个数,n 是当前有序集合的元 素个数

zrangebyscore key min max [withscores]

zrevrangebyscore key max min [withscores]

按照分数顺序或逆序查看指定的一对下标构成的区间的值O(k + log(n)),k 是获取成员的个数,n 是当前有序集合的元 素个数
zcount找出score符合区间[min, max]的member的个数O(log(n)),n 是当前有序集合的元素个数
zremrangebyrank key start end下标范围删除O(k + log(n)),k 是获取成员的个数,n 是当前有序集合的元 素个数
zremrangebyscore key min max分数范围删除O(k + log(n)),k 是获取成员的个数,n 是当前有序集合的元 素个数
zinterstore destination numkeys key [key ...]求交集O(n * k) + O(m * log(m)),n 是输⼊的集合最⼩的元素个数, k 是集合个数, m 是⽬标集合元素个数
zunionstore destination numkeys key [key ...]求并集O(n) + O(m * log(m)),n 是输⼊集合总元素个数,m 是⽬标 集合元素个数

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis常用数据结构有六种,分别是简单动态字符串(SDS)、链表、字典、跳跃表、整数集合和压缩列表。这些数据结构被用来构建Redis的对象系统,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。每种对象都有多种不同的数据结构实现,以适应不同的应用场景。字符串类型是Redis最基础的数据结构,它的值可以是简单的字符串、复杂的字符串(如JSON、XML)、数字(整数、浮点数)甚至二进制数据(如图片、音频、视频),但值的大小不能超过512MB。Redis中的字符串是动态字符串,可以通过预分配冗余空间的方式减少内存分配的频率。字符串的长度不超过1MB时,扩容时会加倍现有的空间;而超过1MB时,每次扩容只会增加1MB的空间。需要注意的是,Redis规定字符串的长度不能超过512MB。123 #### 引用[.reference_title] - *1* [Redis常见数据结构](https://blog.csdn.net/weixin_42348609/article/details/102996982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [Redis-常用数据结构](https://blog.csdn.net/Huangjiazhen711/article/details/127567141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [Redis的五种基础数据结构](https://blog.csdn.net/yuyuanlai/article/details/106745757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值