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

Redis 数据类型分布式锁

目录
  • Redis 数据类型
  • Redis分布式锁

Redis 数据类型

Redis 基本命令—— 超详细操作演示!!!_redis 操作-CSDN博客

基础核心类型 (5种) → 扩展类型 (2种) → 特殊用法/模块类型

记住:Redis 设计是 二进制安全 的,但 大多数场景 我们都把它当做 字符串数据库 来用!

类型 底层实现说法(技术细节) 通俗应用说法(日常使用)
String byte[] → byte[] string → string
Hash byte[] → dict{byte[],byte[]} string → map<string,string>
List byte[] → quicklist[byte[]] string → list<string>
Set byte[] → dict{byte[]} string → set<string>
ZSet byte[] → zset{byte[],double} string → sorted set<string,double>
// String类型string → string
key: byte[] → value: byte[]
// Hash类型string → map<string,string>
key: byte[] → value: dict {field: byte[], value: byte[]}
// List类型string → list<string>
key: byte[] → value: quicklist [byte[], byte[], ...]
// Set类型string → set<string>
key: byte[] → value: dict {member: byte[]}
// ZSet类型string → sorted set<string,double>
key: byte[] → value: zset {skiplist: {score: double, member: byte[]},dict: {member: byte[] → score: double}
}

Redis 内存中的真实结构

// 简化版的 Redis 内存结构
typedef struct redisDb {dict *dict;              // 主字典,存储所有键值对
} redisDb;// dict 中的每个 entry:
key: byte[]                 // 键(二进制)
value: redisObject*        // 指向值的指针// redisObject 根据类型不同指向不同结构:
// - String: 直接指向 byte[]
// - List: 指向 quicklist
// - Hash: 指向 dict
// - Set: 指向 dict
// - Sorted Set: 指向 zset
类型 Key 结构 Value 结构 主要用途 是否二进制安全
String byte[] byte[] 缓存、计数器、锁
Hash byte[] dict 对象存储、配置
List byte[] quicklist[byte[]] 队列、栈、时间线
Set byte[] dict 标签、共同好友、去重
Sorted Set byte[] zset 排行榜、时间排序
Stream 扩展类型 byte[] rax+listpack 消息队列、事件源
HyperLogLog 扩展类型 byte[] hyperloglog(12KB) 基数统计、UV统计
Bitmap 位图- String的特殊用法 byte[] byte[] (位操作) 签到、在线状态、布尔统计
Geospatial 地理位置)- ZSet的特殊用法 byte[] zset (GEO编码) 地理位置、附近的人

Redis分布式锁

分布式锁的核心意义在于:在分布式系统中,协调多个节点/服务对共享资源的互斥访问

分布式锁的本质就是:在分布式系统中,实现跨进程/跨机器的互斥访问控制,确保同一时刻只有一个节点能执行特定操作。

分布式锁的一种实现就是SET NX EX,去redis里面创建一个string类型的key-value,创建不成功说明别人拿到了锁,创建成功表示自己拿到了锁

  • # 尝试创建锁 创建一个key:lock_key value:unique_value。创建成功说明拿到了锁,创建失败说明别人已经拿到了锁
    SET lock_key unique_value NX EX 10
    # 参数说明:
    # NX:仅当key不存在时才设置
    # EX:设置过期时间(秒)
    # PX:设置过期时间(毫秒)
    # unique_value:唯一标识,用于安全释放锁
    
  • https://blog.csdn.net/weixin_43412762/article/details/135426120#93_setnx__157

http://www.jsqmd.com/news/57442/

相关文章:

  • ESP32-LVGL 开发笔记(三):性能监控
  • 2025 阿联酋经济部商标注册平台 TOP4 实测:流程、费用与使用指南全解析
  • 2025 墨西哥商标注册渠道怎么选?3 大主流渠道测评 + 避坑指南
  • 2025年8款免费AI论文写作神器推荐!毕业论文轻松搞定
  • Typora的基础使用 - Edward
  • DP题单-衔接版
  • TCP/IP是什么?OSI又是什么? - 实践
  • 实用指南:(ACP广源盛)GSV6155---带嵌入式微控制器(MCU)和电源传输(PD)控制器的 Type-C/DisplayPort 1.4 信号中继器
  • 敏捷冲刺随笔-5
  • 美国商标注册代理公司哪家强?2025 实测榜单,注册成功率一目了然
  • 2025 国际商标注册平台测评:8 大头部机构实力排行 + 适配指南
  • 2025 印尼商标注册服务商哪家好?3大平台测评,帮你避开 90% 的坑
  • 从赋能到共创:技术负责人的团队赋能五层次模型
  • 【数位之和】除法和取余的使用
  • 基于空间变化单层神经网络先验的贝里标量-图像回归
  • 20251130-学习第一天
  • zy_蓝桥杯_C++学习系列一_语法基础
  • Spring Framework源码解析——AsyncConfigurer - 实践
  • 20232415 2025-2026-1 《网络与系统攻防技术》实验八实验报告
  • Linux 进程资源占用分析指南 - 指南
  • 租房买房必看5这种“恶山”格局,让你努力工作也存不住钱,背后小人不断!
  • python笔记-条件判断
  • AI自动视频剪辑的开源模型盘点
  • 日总结 33
  • STM32 Cmake平台上对print进行串口重定向的方法
  • Github 学生认证保姆级教程 - 狼人:
  • 【口碑好的/比较好的/靠谱的】螺杆挤出机公司/工厂/厂家推荐/排行榜 哪家好/强/靠谱
  • liunx材料及目录管理和vim编辑
  • 游戏_CS_地图
  • Codeforces Div2 2025.11.28