我的Redis数据库里有几个计数器
我可以从一个控制台命令设置,我也可以能够列出键
$key_names = Redis::keys("*api_count*");
在同一个控制台命令中,转储$key_names
得到了这个
array:5 [
0 => "dev_database_api_count_companies_2023_05_16"
1 => "dev_database_api_count_check_last_event2023_05_16"
2 => "dev_database_api_count_financial_2023_05_16"
3 => "dev_database_api_count_check_last_event_2023_05_16"
4 => "dev_database_api_count_authenticate_2023_05_16"
]
然后,我尝试在同一个控制台命令中读取一个值
$value = Redis::get('dev_database_api_count_companies_2023_05_16');
但我得到了一个空值
所以我尝试usign redis-cli
127.0.0.1:6379> KEYS *
1) "dev_database_api_count_companies_2023_05_16"
2) "dev_database_api_count_check_last_event2023_05_16"
3) "dev_database_api_count_financial_2023_05_16"
4) "dev_database_api_count_check_last_event_2023_05_16"
5) "dev_database_api_count_authenticate_2023_05_16"
6) "dev_database_queues:default"
7) "dev_database_queues:default:notify"
127.0.0.1:6379> GET "dev_database_api_count_companies_2023_05_16"
"204"
我做错了什么?
为什么set
和keys
可以工作,但get
不行?
背景
我只使用Redis作为缓存我使用Laravel 8为这个特定的项目,但同样的行为,它在最新的Laravel 10
已解决
请看我自己的答案。这个问题只是一个前缀的问题。我忽略了keys
不删除前缀,但当使用get
时,我必须省略前缀
1条答案
按热度按时间ohtdti5x1#
我现在明白了,
keys
并没有删除laravel添加的前缀。因此,当使用
get
进行检索时,我必须手动删除前缀。我不能用
但是