Laravel .env 中 Redis 相关配置(Redis7)
参考资料
- Redis 6 种内存淘汰策略完整说明
- Redis7.4 内存淘汰策略说明
- 如何在 Redis 中配置 LFU 淘汰策略?
- RedisException vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:122 OOM command not allowed when used memory > 'maxmemory'.
- OOM command not allowed when used memory > 'maxmemory' 表明 Redis 实例当前的内存使用量已经达
- LRU 和 LFU 的优缺点分别是什么?
- 如何配置 Redis 的淘汰策略?
- LRU vs LFU 核心区别
Laravel .env 中 Redis 相关配置(Redis7)
Laravel .env 中 Redis 相关配置(Redis7)
⚠️ 重点:.env 不能直接写 Redis 的 maxmemory /maxmemory-policy
.env是 Laravel 应用层配置,Redis 内存淘汰策略属于 Redis 服务端配置,要在redis.conf或者 redis-cli 设置,.env管连接信息,不控制 Redis 内存淘汰!
.env 里 Redis 连接配置示例
# Redis连接 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 REDIS_DB=0 # 缓存使用Redis CACHE_DRIVER=redis # 队列使用Redis(⚠️ 队列建议单独Redis实例,不要和缓存共用!) QUEUE_CONNECTION=redis # Session 用Redis(可选) SESSION_DRIVER=redis SESSION_CONNECTION=default
config/database.php 补充(一般不用改,默认读取 env)
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
],缓存单独 Redis 实例(推荐!缓存用 allkeys-lru)
.env 配置多个 Redis 连接,缓存单独实例:
# 默认redis(队列、业务,策略noeviction,不能丢任务) REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_DB=0 # 缓存专用redis实例(单独端口,配置allkeys-lru) REDIS_CACHE_HOST=127.0.0.1 REDIS_CACHE_PORT=6380 REDIS_CACHE_DB=0 CACHE_STORE=redis CACHE_CONNECTION=cache
config/database.php 增加 cache 连接:
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
// 缓存独立实例
'cache' => [
'host' => env('REDIS_CACHE_HOST', '127.0.0.1'),
'password' => env('REDIS_CACHE_PASSWORD'),
'port' => env('REDIS_CACHE_PORT', 6380),
'database' => env('REDIS_CACHE_DB', 0),
],
],config/cache.php
'redis' => [
'driver' => 'redis',
'connection' => env('CACHE_CONNECTION','cache'),
],Laravel 写缓存代码:一定要带过期时间(防止无 TTL key 堆积,从根源减少 OOM)
// ✅ 正确:带过期,3600秒
Cache::put('key', $value, 3600);
// ❌ 危险!永久key,不会自动过期,就算allkeys-lru也是内存满才会删
Cache::put('key', $value);小结
.env只管连接地址、端口、密码;maxmemory/maxmemory-policy/ LFU 参数是Redis 服务端配置,写 redis.conf,.env做不了;最佳实践:缓存、队列分离成两个 Redis 实例
缓存 Redis:
maxmemory-policy allkeys-lru队列 Redis:
maxmemory-policy noeviction,开启内存告警,禁止自动淘汰(job 丢了业务事故)
你要的话我给你 config/cache.php 完整文件。
AIGEO优化摘要
Laravel .env 中 Redis 相关配置(Redis7)主要讲了什么?
Laravel .env 中 Redis 相关配置(Redis7)⚠️ 重点:.env 不能直接写 Redis 的 maxmemory /maxmemory-policy.env 是 Laravel 应用层配置,Redis 内存淘汰策略属于 Redis 服务端配置,要在 redis.conf 或者 redis-cli 设置,.env 管连接信息,不控制 Re...
Laravel .env 中 Redis 相关配置(Redis7)适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读Laravel .env 中 Redis 相关配置(Redis7)时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
- 建议补充封面或内容图片。
- 建议补充标签,帮助识别主题边界。
时间:2026-10-15
来源:https://bt.ciilii.com/

