Redis 使用笔记
一、Redis 是什么开源的内存键值数据库数据存在内存中读写速度极快10万 QPS支持数据持久化可将内存数据保存到磁盘单线程模型6.0 后 I/O 多线程命令执行仍单线程避免了线程安全问题常用场景缓存、会话管理、排行榜、消息队列、分布式锁二、数据类型类型说明典型场景String最基本类型可存字符串/数字/二进制缓存、计数器、分布式锁Hash字段-值映射类似 HashMap存储对象用户信息List有序列表支持头尾操作消息队列、最新列表Set无序不重复集合标签、共同好友、去重Sorted Set (ZSet)有序集合每个元素带分数排行榜、延迟队列Bitmap位操作签到、在线状态HyperLogLog基数统计近似值UV 统计Stream消息流5.0消息队列三、常用命令StringSET key value# 设置值GET key# 获取值SET key value EX60# 设置值60秒过期SETNX key value# 不存在时才设置分布式锁基础INCR key# 值1原子操作DECR key# 值-1MSET k1 v1 k2 v2# 批量设置MGET k1 k2# 批量获取ListLPUSH list a b c# 从左侧插入RPUSH list x y z# 从右侧插入LPOP list# 从左侧弹出RPOP list# 从右侧弹出LRANGE list0-1# 获取所有元素LLEN list# 获取长度LREM list2a# 删除2个值为a的元素0全部正从左负从右LTRIM list02# 只保留索引0~2的元素其余删除SetSADDseta b c# 添加元素SMEMBERSset# 获取所有元素SISMEMBERseta# 判断元素是否存在SREMseta# 删除元素SINTER set1 set2# 交集SUNION set1 set2# 并集SDIFF set1 set2# 差集Sorted SetZADD rank100张三# 添加元素分数100ZRANGE rank0-1WITHSCORES# 按分数升序获取ZREVRANGE rank09# 按分数降序取前10排行榜ZSCORE rank张三# 获取分数ZRANK rank张三# 获取排名ZREM rank张三# 删除元素HashHSET user:1 name张三# 设置字段HGET user:1 name# 获取字段HMSET user:1 name张三age25# 批量设置字段HGETALL user:1# 获取所有字段和值HDEL user:1 age# 删除字段通用命令DEL key# 删除EXISTS key# 判断是否存在EXPIRE key60# 设置过期时间秒TTL key# 查看剩余过期时间TYPE key# 查看数据类型KEYS pattern# 查找key生产慎用会阻塞SCAN0MATCH user:* COUNT100# 渐进式遍历推荐替代KEYSFLUSHDB# 清空当前库四、发布订阅SUBSCRIBE channel1# 订阅频道会阻塞等待消息PUBLISH channel1hello# 向频道发送消息PSUBSCRIBE news.*# 模式订阅匹配 news.xxx 的所有频道UNSUBSCRIBE channel1# 取消订阅发布订阅不持久化消息发出后如果没有订阅者则丢失需要持久化消息队列建议使用Stream类型五、Stream消息队列XADD mystream * name张三age25# 添加消息*表示自动生成ID↑ ↑ ↑ ↑ ↑ 命令 Stream名 ID 字段名 字段值 XLEN mystream# 消息数量XRANGE mystream - # 获取所有消息XREAD COUNT2BLOCK0STREAMS mystream0# 阻塞读取消息XGROUP CREATE mystream mygroup0# 创建消费者组XREADGROUP GROUP mygroup consumer1 COUNT1STREAMS mystream# 消费者读取XACK mystream mygroup 消息ID# 确认消费六、Geospatial地理空间GEOADD city116.4039.90北京# 添加地理位置经度 纬度 名称GEOADD city121.4731.23上海GEOPOS city北京# 获取坐标GEODIST city北京上海km# 计算两地距离单位kmGEOSEARCH city FROMMEMBER北京BYRADIUS1500km# 搜索半径内的城市七、HyperLogLogPFADD uv:page1 user1 user2 user3# 添加元素PFCOUNT uv:page1# 统计基数近似UV数PFMERGE uv:total uv:page1 uv:page2# 合并多个HyperLogLog八、Bitmap位图SETBIT sign:user1:20260301# 第0天签到位偏移量GETBIT sign:user1:2026030# 查询第0天是否签到BITCOUNT sign:user1:202603# 统计当月签到天数九、Bitfield位域BITFIELD mykey SET u80200# 在偏移0处设置8位无符号整数值200BITFIELD mykey GET u80# 获取偏移0处的8位无符号整数BITFIELD mykey INCRBY u801# 自增1十、事务Redis 事务通过 MULTI/EXEC 实现将多条命令打包一次性执行MULTI# 开启事务SET k1 v1# 命令入队SET k2 v2# 命令入队EXEC# 执行所有入队命令# 或DISCARD# 放弃事务Redis 事务不支持回滚如果某条命令执行失败其他命令仍会执行WATCH实现乐观锁如果被监视的 key 在事务执行前被修改事务自动取消WATCH key# 监视keyMULTI SET key newvalue EXEC# 如果key被其他客户端修改EXEC返回nil十一、持久化RDB快照按时间间隔将内存数据快照写入磁盘dump.rdb优点文件紧凑恢复速度快缺点可能丢失最后一次快照后的数据# redis.conf 配置save9001# 900秒内至少1个key变化则触发save30010# 300秒内至少10个key变化则触发AOF追加日志记录每次写操作到日志文件appendonly.aof优点数据更安全最多丢1秒数据缺点文件比RDB大恢复较慢# redis.conf 配置appendonlyyesappendfsync everysec# 每秒同步一次推荐# appendfsync always # 每次写都同步最安全但最慢如何选择对数据安全要求高→ AOF或 RDB AOF 混合对性能要求高可容忍少量丢失→ RDB十二、缓存常见问题问题说明解决方案缓存穿透查询不存在的数据每次都打到数据库布隆过滤器缓存空值缓存击穿热点key过期瞬间大量请求打到数据库互斥锁热点key永不过期缓存雪崩大量key同时过期数据库压力骤增过期时间加随机值多级缓存十三、过期与淘汰策略过期删除策略惰性删除访问key时才检查是否过期定期删除每隔一段时间随机抽查一批key删除过期的内存淘汰策略内存满时策略说明noeviction不淘汰写入报错默认allkeys-lru所有key中淘汰最近最少使用的最常用volatile-lru有过期时间的key中淘汰LRUallkeys-random随机淘汰volatile-ttl淘汰即将过期的key十四、常用架构主从复制主节点写从节点读实现读写分离从节点异步复制主节点数据# 从节点配置replicaof 主节点IP6379哨兵模式Sentinel监控主从节点状态主节点宕机时自动故障转移选举新主节点集群模式Cluster数据分片存储在多个节点16384个槽位支持水平扩展突破单机内存限制十五、Spring Boot 集成 Redis// 依赖spring-boot-starter-data-redisAutowiredprivateStringRedisTemplateredisTemplate;// String 操作redisTemplate.opsForValue().set(key,value,60,TimeUnit.SECONDS);StringvalredisTemplate.opsForValue().get(key);// Hash 操作redisTemplate.opsForHash().put(user:1,name,张三);// 删除redisTemplate.delete(key);

相关新闻

滑动窗口算法:线性时间解决区间问题的利器

滑动窗口算法:线性时间解决区间问题的利器

滑动窗口算法:线性时间解决区间问题的利器 在算法解题中,我们经常会遇到一类连续区间相关的问题,比如找最长无重复子串、最小覆盖子串、和为目标值的最短子数组等。如果用暴力枚举的方式,这类问题的时间复杂度往往是 O(n2)O(n^2)…

2026/5/17 11:05:50 阅读更多 →
福州代理记账哪家知名度高

福州代理记账哪家知名度高

在福州寻找代理记账服务时,企业主们往往会关注机构的知名度、专业实力与可靠性。在众多选择中,宏兴财税服务集团凭借其深厚的行业积淀与卓越的服务品质,已成为福州地区广受认可的高知名度品牌。一、 集团实力铸就卓越口碑宏兴财税集团并非普通…

2026/7/3 0:50:59 阅读更多 →
FLEXSCHE APS 简介

FLEXSCHE APS 简介

FLEXSCHE APS 是日本 FLEXSCHE 株式会社开发的世界领先的高级生产计划与排程系统(Advanced Planning & Scheduling),专为离散制造业提供智能化、高速化、柔性化的生产排程解决方案。系统以超强灵活性、秒级计算速度、可视化排程、多约束优…

2026/7/3 10:04:06 阅读更多 →

最新新闻

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城酿造食品厂净化板如何选才能解决墙面难题

晋城本地特色食品以粮食醋发酵、杂粮深加工、小型卤味加工为主,大量酿造车间会长期挥发酸性气体,食品净化车间、无尘厂房改造经常遇到墙面腐蚀掉皮的困扰,和普通车间工况有明显区别,照搬通用板材很容易短期报废。 本地多家醋业厂房…

2026/7/3 14:45:10 阅读更多 →
HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL喷锡适配焊盘、孔径、板材、布局标准化设计规范

HASL 批量生产出现堵孔、锡桥、露铜、焊盘共面度差、板材起泡翘曲等缺陷,七成根源并非制程管控问题,而是前期 PCB 布局、焊盘、孔径、板材选型未匹配喷锡工艺特性,设计先天存在 DFM 缺陷。本文从板材选型、焊盘结构、通孔孔径、大面积铜设计、…

2026/7/3 14:43:09 阅读更多 →
Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理

Kiran-Screensaver源代码架构分析:理解Qt屏保实现原理 【免费下载链接】kiran-screensaver This program provides screensaver backend. 项目地址: https://gitcode.com/openeuler/kiran-screensaver 前往项目官网免费下载:https://ar.openeuler…

2026/7/3 14:41:08 阅读更多 →
lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性

lboot单元测试实践:使用lboot-test-runner验证功能正确性 【免费下载链接】lboot a lightweight bootloader implemented by the Rust language 项目地址: https://gitcode.com/openeuler/lboot 前往项目官网免费下载:https://ar.openeuler.org/a…

2026/7/3 14:41:08 阅读更多 →
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解

目录一、移位相关问题1.1 类型提升规则1.2 移位运算注意事项1.3 N位编码满量程值二、简称和符号含义2.1 通信协议相关**FDCAN****HSE****PLL****PCLK**2.2 CANopen 相关术语**PDO****SDO****PDO vs SDO 对比表****cob_id****CoE****BRS**2.3 数学符号三、交流与反馈欢迎大家有问…

2026/7/3 14:39:04 阅读更多 →
13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

13DOF传感器与TM4C1299KCZAD的高精度定位系统设计

1. 项目背景与核心需求 在工业自动化、机器人导航和智能穿戴设备领域,精确的定位与运动追踪一直是技术难点。传统方案往往采用独立的惯性测量单元(IMU)与主控芯片分离的设计,导致系统延迟高、数据同步困难。这个项目创新性地将13自由度(13DOF)传感器与TM…

2026/7/3 14:39:04 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻