Redis 5+1
5+1
5大数据类型和key的操作
- String(字符串)
- string是redis最基本的类型
- string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
- string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
- Hash(哈希,类似java里的Map)
- Redis hash 是一个键值对集合。
- Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
- List(列表)
- Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
- 它的底层实际是个链表
- Set(集合)
- Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
- Zset(sorted set:有序集合)
- Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
- 不同的是每个元素都会关联一个double类型的分数。
- redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
常见操作命令
-
key
命令 解析 exists key 判断某个key是否存在 move key db 移除key,当前库就没有了 expire key 秒钟 给key设置过期时间 ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期 type key 查看你的key是什么类型 -
String
命令 解析 set/get/del/append/strlen 设置/获取/删除/追加/长度 Incr/decr/incrby/decrby 增一/减一/增自定义/减自定义 getrange key start end 获取指定区间范围内的值 end=0 代表获取所有 setrange key start value 设置指定区间范围内的值,value长度不变,替换 setex 键 秒值 真实值 设置带过期时间的key,动态设置 setnx 键 真实值 只有在 key 不存在时设置 key 的值 mset/mget/msetnx 批量 设置/获取/设置(key存在时不设置) getset(先get再set) 更新key的值 返回值是旧值 -
List
命令 解析 lpush/rpush/lrange 左增/右增/左获取 lpop/rpop 剔除左边第一个数据/剔除右边第一个数据 lindex 按照索引下标获得元素(从上到下) llen 长度 lrem key n value 删除n个value ltrim key 开始index 结束index,截取指定范围的值后 再赋值给key rpoplpush key1 key2 移除key1列表的最后一个元素,
并将该元素添加到key2列表并返回被操作的值lset key index value 指定更新第index位的值 linsert key before/after index value 在list某个已有值的 前/后 再添加具体值 注:
它是一个字符串链表,left(头)、right(尾)都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。 -
Set
命令 解析 sadd/smembers/sismember 添加/获取/判断是否存在 scard 获取集合里面的元素个数 srem key value 删除集合中元素 srandmember key 随机获取set集合中的某个值 spop key 随机剔除 smove key1 key2 value 在key1里的value值添加到key2中 命令 解析 sdiff 差集 sinter 交集 sunion 并集 -
Redis哈希(Hash)
命令 解析 hset/hget/hmset/hmget/hgetall/hdel 添加/获取/批量添加/批量获取/获取所有/删除 hlen 长度 hexists key 是否存在key hkeys/hvals 获取V中的所有key/获取V中的所有value hincrby/hincrbyfloat 添加 整形/浮点型 hsetnx 不存在V的值时,先判断V中的key是否存在 注:KV模式不变,但V是一个键值对
-
Zset(sorted set)
命令 解析 zadd key score1 v1 score2 v2 score3 v3 设置value值并设置score值 zrange key 0 -1 [withscores] 获取排序后的value值,带上withscores则会把score值显示 zrangebyscore key min max 获取范围的value值 开始score1 结束score2 zrem key 删除元素 zcard key 获取数量 zcount key min max 获取l列表区间内的数据的数量 zrank key 获得values值 zscore key 获得分数 zrevrank key values 获得下标索引(分数按大到小排序) zrevrange 获取列表(分数按大到小排序) zrevrangebyscore key max min 获取列表区间(分数按大到小排序) 注:
在set基础上,加一个score值,根据score来排序。
之前set是k1 v1 v2 v3,
现在zset是k1 score1 v1 score2 v2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南