- 消息大小考虑 crc16()一共可以有: 2^16 -1=65535 1 不同的余数,代表bitmap 有 65535 bit。所以bitmap的大小可以计算为 65535 / 8 (8bit/byte)/1024(1k)=7.99 Kbytes 1 尽管crc16能得到65535个值,但redis选择16384个slot,是因为16384的消息只占用了2k,... 消息大小考虑 crc16()一共可以有: 2^16 -1=65535 1 不同的余数,代表bitmap 有 65535 bit。所以bitmap的大小可以计算为 65535 / 8 (8bit/byte)/1024(1k)=7.99 Kbytes 1 尽管crc16能得到65535个值,但redis选择16384个slot,是因为16384的消息只占用了2k,...
- 使用防重复机制的背景1.由于用户误操作,多次点击表单提交按钮。2.由于网速等原因造成页面卡顿,用户重复刷新提交页面。3.黑客或恶意用户使用postman等工具重复恶意提交表单(攻击网站)。这些情况都会导致表单重复提交,造成数据重复,增加服务器负载,严重甚至会造成服务器宕机。因此有效防止表单重复提交有一定的必要性。解决方案针对目前比较流行的分布式系统,结合在项目实施过程中遇到的问题,以及在解决... 使用防重复机制的背景1.由于用户误操作,多次点击表单提交按钮。2.由于网速等原因造成页面卡顿,用户重复刷新提交页面。3.黑客或恶意用户使用postman等工具重复恶意提交表单(攻击网站)。这些情况都会导致表单重复提交,造成数据重复,增加服务器负载,严重甚至会造成服务器宕机。因此有效防止表单重复提交有一定的必要性。解决方案针对目前比较流行的分布式系统,结合在项目实施过程中遇到的问题,以及在解决...
- Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。语法:prepend 命令的基本语法格式如下:prepend key flags exptime bytes [noreply]value参数说明如下:key:键值 key-value 结构中的 key,用于查找缓存值。flags:可以包括键值对的整型参数,客户机使用它存储关于键值对... Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。语法:prepend 命令的基本语法格式如下:prepend key flags exptime bytes [noreply]value参数说明如下:key:键值 key-value 结构中的 key,用于查找缓存值。flags:可以包括键值对的整型参数,客户机使用它存储关于键值对...
- Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。语法:append 命令的基本语法格式如下:append key flags exptime bytes [noreply]value参数说明如下:key:键值 key-value 结构中的 key,用于查找缓存值。flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外... Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。语法:append 命令的基本语法格式如下:append key flags exptime bytes [noreply]value参数说明如下:key:键值 key-value 结构中的 key,用于查找缓存值。flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外...
- # 1. 安装基础依赖sudo apt updatesudo apt install -y lsb-release curl gpg# 2. 导入官方 GPG 密钥并配置软件源curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gp... # 1. 安装基础依赖sudo apt updatesudo apt install -y lsb-release curl gpg# 2. 导入官方 GPG 密钥并配置软件源curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gp...
- 内存告警、延迟尖刺、一月一次主从切换,第一反应是扩容,结果从 3 主 3 从加到 4 主 4 从,延迟内存都没改善。本文把大 key 与热 key 分开讨论:前者是空间与阻塞问题,DEL 一个 500 万元素的 Hash 能阻塞单线程实例数秒;后者是单核问题,一个 key 只落一个 slot,加节点无效。文中给出 lazyfree 配置、大 key 拆分与本地缓存的取舍,以及定位方法。 内存告警、延迟尖刺、一月一次主从切换,第一反应是扩容,结果从 3 主 3 从加到 4 主 4 从,延迟内存都没改善。本文把大 key 与热 key 分开讨论:前者是空间与阻塞问题,DEL 一个 500 万元素的 Hash 能阻塞单线程实例数秒;后者是单核问题,一个 key 只落一个 slot,加节点无效。文中给出 lazyfree 配置、大 key 拆分与本地缓存的取舍,以及定位方法。
- 在 Debian 系统上安装 Redis,推荐使用系统官方软件源(简单稳定)或 Redis 官方 APT 源(获取最新稳定版)。使用 Debian 官方源安装适合追求系统稳定性且不需要最新特性的场景。 在 Debian 系统上安装 Redis,推荐使用系统官方软件源(简单稳定)或 Redis 官方 APT 源(获取最新稳定版)。使用 Debian 官方源安装适合追求系统稳定性且不需要最新特性的场景。
- Redis 是 Node.js 应用最常用的缓存。涵盖 ioredis 客户端的连接配置(单机、集群、哨兵),string、hash、set、zset 数据类型的 Node.js 操作,分析缓存穿透(布隆过滤器)、击穿(互斥锁)、雪崩(过期时间分散)的应对方案,以及缓存与数据库一致性(延迟双删)的实现。 Redis 是 Node.js 应用最常用的缓存。涵盖 ioredis 客户端的连接配置(单机、集群、哨兵),string、hash、set、zset 数据类型的 Node.js 操作,分析缓存穿透(布隆过滤器)、击穿(互斥锁)、雪崩(过期时间分散)的应对方案,以及缓存与数据库一致性(延迟双删)的实现。
- 下面按「问题定位 → 方案设计 → 落地验证 → 效果对比」四个阶段展开。现状与问题在原有架构下,核心瓶颈集中在 冷启动:本地缓存 + 分布式缓存两级。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 Nginx 替换原方案中耦合较重的部分,把 冷启动 拆成独立可水平扩展的单元。关键点有三:1. 镜像预热 + 实例分级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关... 下面按「问题定位 → 方案设计 → 落地验证 → 效果对比」四个阶段展开。现状与问题在原有架构下,核心瓶颈集中在 冷启动:本地缓存 + 分布式缓存两级。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 Nginx 替换原方案中耦合较重的部分,把 冷启动 拆成独立可水平扩展的单元。关键点有三:1. 镜像预热 + 实例分级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关...
- 针对大促抢购或恶意爬虫导致的瞬时流量洪峰,极易击穿后端微服务引发雪崩的痛点,本文提供一套在网关层结合分布式缓存(Redis)与 Lua 脚本的限流工程化解法。通过原子化执行令牌桶/固定窗口算法,实现毫秒级精准拦截,保障核心业务的高可用。 针对大促抢购或恶意爬虫导致的瞬时流量洪峰,极易击穿后端微服务引发雪崩的痛点,本文提供一套在网关层结合分布式缓存(Redis)与 Lua 脚本的限流工程化解法。通过原子化执行令牌桶/固定窗口算法,实现毫秒级精准拦截,保障核心业务的高可用。
- 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 缓存命中率:预拉取减少按需加载抖动。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ECS 替换原方案中耦合较重的部分,把 连接池 拆成独立可水平扩展的单元。关键点有三:1. 本地缓存 + 分布式缓存两级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于... 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 缓存命中率:预拉取减少按需加载抖动。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ECS 替换原方案中耦合较重的部分,把 连接池 拆成独立可水平扩展的单元。关键点有三:1. 本地缓存 + 分布式缓存两级2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于...
- 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 调度延迟:热点 key 打散到多分片。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ArkTS 替换原方案中耦合较重的部分,把 缓存命中率 拆成独立可水平扩展的单元。关键点有三:1. 热点 key 打散到多分片2. 边界条件单独处理,避免主链路被污染3. 保留灰度开... 本文结合近期项目实践,整理了一套相对通用的思路,希望对同行有所启发。现状与问题在原有架构下,核心瓶颈集中在 调度延迟:热点 key 打散到多分片。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 ArkTS 替换原方案中耦合较重的部分,把 缓存命中率 拆成独立可水平扩展的单元。关键点有三:1. 热点 key 打散到多分片2. 边界条件单独处理,避免主链路被污染3. 保留灰度开...
- 本文不展开产品选型,只聚焦工程层面如何把方案做稳。现状与问题在原有架构下,核心瓶颈集中在 序列化开销:热点 key 打散到多分片。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 GaussDB 替换原方案中耦合较重的部分,把 调度延迟 拆成独立可水平扩展的单元。关键点有三:1. 热点 key 打散到多分片2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于回滚落... 本文不展开产品选型,只聚焦工程层面如何把方案做稳。现状与问题在原有架构下,核心瓶颈集中在 序列化开销:热点 key 打散到多分片。随着业务量增长,该问题在高峰期被进一步放大。方案设计整体思路是用 GaussDB 替换原方案中耦合较重的部分,把 调度延迟 拆成独立可水平扩展的单元。关键点有三:1. 热点 key 打散到多分片2. 边界条件单独处理,避免主链路被污染3. 保留灰度开关,便于回滚落...
- Redis + PHP:缓存到底应该怎么用Redis 经常用于:缓存Session计数器排行榜分布式锁队列 基本缓存请求 ↓Redis GET ↓命中 → 返回未命中 ↓MySQL ↓Redis SET TTL缓存应该有合理的过期时间,否则很容易出现永久脏数据。 缓存穿透大量请求不存在的数据,会全部打到数据库。可以考虑缓存空结果、布隆过滤器等方案。 缓存击穿热门 Key 同时过期,可能导致... Redis + PHP:缓存到底应该怎么用Redis 经常用于:缓存Session计数器排行榜分布式锁队列 基本缓存请求 ↓Redis GET ↓命中 → 返回未命中 ↓MySQL ↓Redis SET TTL缓存应该有合理的过期时间,否则很容易出现永久脏数据。 缓存穿透大量请求不存在的数据,会全部打到数据库。可以考虑缓存空结果、布隆过滤器等方案。 缓存击穿热门 Key 同时过期,可能导致...
- 针对云分布式缓存(DCS/Redis)在清理包含数百万元素的 Hash/Set 大 Key 时,直接执行 DEL 指令导致单线程长时间阻塞、甚至引发雪崩超时的痛点,本文分享一套基于底层 UNLINK 异步回收与 SCAN 游标迭代的工程化防御机制。 针对云分布式缓存(DCS/Redis)在清理包含数百万元素的 Hash/Set 大 Key 时,直接执行 DEL 指令导致单线程长时间阻塞、甚至引发雪崩超时的痛点,本文分享一套基于底层 UNLINK 异步回收与 SCAN 游标迭代的工程化防御机制。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签