当前位置: 首页 > news >正文

Redis 数据类型命令详解

Redis 数据类型命令详解


一、String(字符串)

一个 key 对应一个值,最基础的类型。能存字符串、数字、二进制。

典型场景:缓存数据、计数器、分布式锁、存 token/验证码。

命令解释示例
SET key value存值SET name "zhangsan"
GET key取值GET name
MSET k1 v1 k2 v2批量存MSET a 1 b 2 c 3
MGET k1 k2批量取MGET a b
INCR key/DECR key自增/自减 1INCR views
INCRBY key n/DECRBY key n自增/自减 nINCRBY score 10
SETNX key value不存在才存(分布式锁)SETNX lock:order 1
SETEX key s value存值并设过期(秒)SETEX code 300 "123456"
GETSET key value取旧值,设新值GETSET counter 0

二、Hash(哈希)

一个 key 下挂多个 field-value,就像 Java 的 Map 或数据库里的一行。

典型场景:存用户信息、商品属性、配置项。

命令解释
HSET key f v/HMSET key f1 v1 f2 v2设置字段
HGET key f/HMGET key f1 f2获取字段
HGETALL key获取全部字段和值
HKEYS key/HVALS key只取字段名 / 只取值
HEXISTS key f判断字段是否存在
HDEL key f删除字段
HINCRBY key f n给字段值 +n
HLEN key字段个数

三、List(列表)

有序、可重复的字符串队列,底层是双向链表。两头都能塞、两头都能拿。

典型场景:消息队列、最新动态列表、时间线。

命令解释
LPUSH key v/RPUSH key v左/右插入
LPOP key/RPOP key左/右弹出
LRANGE key 0 -1查看全部(-1 表示最后一个)
LREM key n v删除 n 个指定值
LTRIM key start stop只保留范围内的,其余删除
BRPOP key timeout阻塞弹出,等到有新元素才返回(做消息队列用)

记忆:L = Left,R = Right,Push = 塞,Pop = 拿。


四、Set(集合)

无序、不重复的字符串集合。重点是集合运算

典型场景:标签、去重、抽奖、共同好友。

命令解释
SADD key m/SREM key m添加/删除成员
SMEMBERS key查看所有成员
SISMEMBER key m判断是否在集合里
SCARD key元素个数
SINTER k1 k2交集→ 共同好友
SUNION k1 k2并集→ 合并去重
SDIFF k1 k2差集→ 我有你没有
SRANDMEMBER key n随机取 n 个(不删除)
SPOP key n随机弹出 n 个(会删除,抽奖用)

五、Sorted Set(有序集合)

Set + 每个成员绑定一个分数(score),自动按分数排序。

典型场景:排行榜、延迟队列(时间戳做分数)、带权重的标签。

命令解释
ZADD key score m添加成员及分数
ZREM key m删除成员
ZRANGE key 0 9升序查 Top 10(分数最低)
ZREVRANGE key 0 9降序查 Top 10(分数最高)
ZRANGEBYSCORE key min max按分数范围查
ZSCORE key m查某成员分数
ZRANK key m/ZREVRANK key m查成员排名
ZCARD key成员总数
ZCOUNT key min max分数范围内的成员数
ZINCRBY key n m给成员加 n 分
ZREMRANGEBYRANK key 0 9按排名范围删除

六、Bitmap(位图)

把字符串当位数组用,每个 bit 只能是 0 或 1,极其省内存。

典型场景:签到打卡(一年 365 天只占 46 字节)、在线状态、用户标签(是否 VIP)。

命令解释
SETBIT key offset 0/1设置第 offset 位的值
GETBIT key offset获取第 offset 位的值
BITCOUNT key统计有多少个 1(如签到总天数)
BITPOS key 0/1第一个 0 或 1 出现的位置
BITOP AND/OR/XOR result k1 k2多个位图做位运算

七、HyperLogLog(基数统计)

概率型数据结构,估算不重复元素的个数。每个 key 固定 12KB,误差约 0.81%。

典型场景:页面 UV 统计、独立 IP 计数——数据量巨大、允许少量误差的场景。

命令解释
PFADD key element添加元素
PFCOUNT key估算不重复个数
PFMERGE dest k1 k2合并多个 HLL

注意:它不保存原始数据,取不出具体有哪些元素,只能拿到一个近似计数。


八、GEO(地理位置)

在 ZSet 基础上实现的地理位置索引,存经纬度,按距离排序。

典型场景:附近的人、附近商家、配送范围判断。

命令解释
GEOADD key lon lat member添加位置
GEOPOS key m获取经纬度
GEODIST key m1 m2 km计算两点距离
GEORADIUS key lon lat r km查指定坐标半径内的位置
GEORADIUSBYMEMBER key m r km查指定成员半径内的位置
GEOHASH key m获取 GeoHash 值

常用参数:WITHDIST返回距离,WITHCOORD返回坐标,ASC/DESC排序。如GEORADIUS shops 121.47 31.23 5 km WITHDIST ASC查 5 公里内店铺并按距离排序。


通用命令

命令解释
DEL key删除 key
EXISTS keykey 是否存在
EXPIRE key s设过期时间(秒)
TTL key查还剩多少秒(-1 永不过期,-2 不存在)
TYPE key查数据类型
SCAN cursor分批遍历 key(生产环境用这个,别用 KEYS

一张图总结

String: key → "hello" ← 缓存、计数、锁 Hash: key → {name:"zs", age:25} ← 存对象 List: key → ["a","b","c"] ← 队列、时间线 Set: key → {"a","b","c"} ← 去重、共同好友 ZSet: key → {"a":100, "b":80} ← 排行榜 Bitmap: key → 01001100... ← 签到、状态标记(省内存) HyperLogLog: key → ≈12000 ← UV 统计(省内存) Geo: key → {(lon,lat):"name"} ← 附近的人
类型有序?可重复?典型场景
String--缓存、计数、锁
Hashfield 不重复存对象
List插入顺序可重复消息队列、时间线
Set不可重复标签、共同好友
ZSet按分数不可重复排行榜
Bitmap按 offset0/1签到、状态
HyperLogLog--UV、去重计数
Geo按距离不可重复附近的人、LBS
http://www.rkmt.cn/news/1427603.html

相关文章:

  • ChatGPT如何解答奇葩谜题:从原理到实践的全方位解析
  • AMD Ryzen SMU调试工具实战指南:深度优化CPU性能的5个核心场景
  • OpenClaw代码注释自动生成与优化:适配企业规范,告别手动写注释
  • 3步完成CPU单核稳定性测试:CoreCycler终极指南
  • COM3D2.MaidFiddler:免费实时角色编辑器终极指南 [特殊字符]
  • WechatDecrypt微信消息解密完整指南:三步解锁你的聊天记录
  • KMS智能激活脚本:3分钟永久激活Windows与Office的终极指南
  • 猫抓Cat-Catch技术架构解析与实战指南:浏览器资源嗅探的现代解决方案
  • 从技术布道到行业偶像:解析山姆·奥特曼的AI领导力与OpenAI崛起
  • 论文查重真的有那么可怕吗?用书匠策AI免费查重,三分钟搞懂全流程
  • 阴阳师自动化脚本:3步解放双手,智能完成日常任务
  • 保姆级教程:在Linux服务器上配置PCIe AER,让你的系统错误无处遁形
  • 基于STM32与LoRa的20路继电器远程监控系统设计与实现
  • Agent 一接权限申请单就开始提错审批人:从 Approver Scope 到 Submit Proof 的工程实战
  • 别再纠结CSR和SSR了!用Node.js + jsdom手把手教你模拟浏览器渲染,5分钟搞懂服务端生成HTML
  • 从Arduino UNO到RP2350:硬件迁移、代码优化与性能提升实战
  • 【Lovable云平台搭建终极指南】:20年架构师亲授从零到高可用的7大核心步骤
  • 绝了!原来毕业论文有这操作?2026降AIGC网站推荐合集
  • 别再收藏杂七杂八的链接了!一个网站搞定开发调试所有需求
  • 保姆级教程:在Navicat Premium 16中为SQL Server 2019配置正确的Native Client驱动
  • 基于STM32定时器外部时钟模式实现1Hz-30MHz简易频率计
  • 2026.5.30-中国动力工程学会-注册,需要审核, 不知道是否免费一年会费。
  • 基于SIM900与Visuino的Arduino短信发送系统:从AT指令到物联网通信实践
  • 3.5mm耳机接口焊接维修全攻略:从TRRS原理到应力消除实践
  • 3步解锁文档自由:这款神器如何让你轻松下载30+平台的任何文档?
  • 基于Arduino与MPU6050的高精度姿态测量系统设计与实现
  • Windows右键菜单终极清理指南:3分钟让电脑操作效率翻倍 [特殊字符]
  • ncmdumpGUI:免费解锁网易云音乐NCM格式的终极解决方案
  • 2026年EPS怎么转PDF?多种方法+在线工具,保姆级教程一看就会
  • 2026报考建议:沈阳城市建设学院多少分能上?录取线高不高 - 品牌2025