caching - Laravel 6 redis缓存无法获取缓存项目
问题描述
[更新]
我发现无论我尝试保存多少个密钥,laravel 只兑现 1 个密钥,但我总是只找到 1 个密钥“laravel:9a261d789b8265a6b0495ea5d87481b4589422b1”
我努力了
if (Cache::store('redis')->has('bar')) {
echo ' - bar key cache exists - ';
}
else{
echo ' - bar key cache does not exist - ';
}
Cache::store('redis')->put('bar', 'baz', 600);
$value = Cache::get('bar');
echo $value; exit;
我总是明白 - bar key cache does not exist - baz
为什么!???
我正在尝试在 Laravel Homestead localhost 中实现 redis 缓存,这是 .env
PP_NAME=mysite
APP_ENV=local
APP_KEY=base64:887AJ9PHxl7W/QS4g8VrMch6CTL4QMLneq4dHx2KhoE=
APP_DEBUG=true
APP_URL=https://mysite.test:44300
PAGINATE=10
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=redis
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
和 config/database.php
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
'cache' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
],
],
在 config/cache.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
现在在控制器中:
$posts = Cache::remember('posts_cache', 600, function () use ($where) {
return Post::where($where)->inRandomOrder()->paginate(3);
});
$posts
当我每次打印不同的帖子而不是缓存的 3 个帖子时。我跑
redis-cli monitor
并发现它正在缓存。我跑
redis-cli
然后
keys *
我明白了
1) "laravel:9a261d789b8265a6b0495ea5d87481b4589422b1"
2) "laravel:9a261d789b8265a6b0495ea5d87481b4589422b1:timer"
如何从 redis 中检索缓存的数据?我的代码有什么问题?
解决方案
推荐阅读
- python - 从 FASTA 文件中提取基因序列?
- angular - 延迟加载时找不到模块“功能模块的路径”
- javascript - 如何创建具有自定义线宽的 JavaScript 堆叠半圆形仪表图?
- python - 递归中return语句的含义
- linux - 如何从系统中的任何位置(当前目录之外)运行我的脚本?
- python - Python & Kivy:相机和不同屏幕中的文本
- react-native - React Native AsyncStorage:使用等待和异步
- php - 需要为没有主题文件夹的 wordpress 网站创建自定义 php 页面
- python - 如何添加多行评论 go gerrit 审查?
- ios - 使用“可编码”解码数据