跳到主要内容
异次元店铺1 Redis 缓存加速:哪些该缓存哪些不该
异次元店铺1 /进阶技巧

Redis 缓存加速:哪些该缓存哪些不该

Redis 能显著降低数据库压力,但它引入了新的复杂度:数据一致性。

装与配

# 面板:软件商店搜 Redis 安装
# 命令行:
sudo apt install redis-server
sudo systemctl enable --now redis-server

PHP 侧需要 redis 扩展:

pecl install redis
# 然后在 php.ini 加 extension=redis.so

装好之后在后台「插件 → Redis 缓存器」里填连接信息并启用。

:::danger 一定要设密码 Redis 默认无密码且监听所有网卡。公网服务器上这等于把数据库敞开。

# redis.conf
requirepass 你的强密码
bind 127.0.0.1

:::

该缓存什么

数据 缓存 理由
商品分类树 极少变,读取极频繁
站点配置 同上
商品列表 ✅ 短时 变化有限,设 60 秒即可
商品库存 必须实时,缓存会超卖
订单状态 必须实时
用户余额 涉及金钱,绝不缓存

原则很简单:读多写少的缓存,涉及金额和库存的不缓存

「改了不生效」怎么办

这是缓存最常见的副作用。改了后台配置,前台还是旧的。

redis-cli -a 你的密码 FLUSHDB

或者在后台的缓存管理里点「清空缓存」。

:::tip 开发时先关掉 调试期间缓存会让你怀疑人生——不确定是代码没生效还是缓存没刷。开发环境直接关掉 Redis 缓存最省心。 :::

内存策略

Redis 内存满了的行为由 maxmemory-policy 决定:

maxmemory 512mb
maxmemory-policy allkeys-lru

allkeys-lru 表示内存不够时淘汰最久未使用的键。别用默认的 noeviction——那会导致写入直接失败,如果会话也存在 Redis 里,全站会掉登录。

效果验证

redis-cli -a 密码 INFO stats | grep keyspace

keyspace_hitskeyspace_misses 的比例。命中率低于 80% 说明缓存策略需要调整——可能是过期时间太短,或者缓存了不该缓存的东西。

评论 0

目录
登录 / 注册 登录后可点赞与评论
风格
明暗
语言
风格
明暗
语言