gpt4 book ai didi

php - 如何禁用 Phalcon Redis 后端中使用的 _PHCR 键前缀

转载 作者:IT王子 更新时间:2023-10-29 06:10:57 26 4
gpt4 key购买 nike

我正在使用 Phalcon Redis 后端来存储一些数据。后来我尝试用嵌入到 nginx 中的 Lua 语言访问这些数据。让我发疯的是 Phalcon 为 Redis 键添加了一些垃圾前缀,为值添加了一些糟糕的前缀。因此,如果我将这对存储在 Redis 中 - (abc, querty) - 这就是真正存储的内容:

(_PHCRabc, s:6:"querty")

是否可以禁用所有这些垃圾并继续使用 Phalcon Redis 后端?

最佳答案

根据来源,无法使用选项禁用它:https://github.com/phalcon/cphalcon/blob/master/phalcon/cache/backend/redis.zep

public function get(string keyName, int lifetime = null) -> var | null
let lastKey = "_PHCR" . prefix . keyName;

public function save(keyName = null, content = null, lifetime = null, boolean stopBuffer = true) -> boolean
lastKey = "_PHCR" . prefixedKey,

同时引用 the docs :

This adapter uses the special redis key “_PHCR” to store all the keys internally used by the adapter

我在某处读到,这样做是为了能够刷新 Phalcon 生成的缓存文件。

您最好的选择是扩展 \Phalcon\Cache\Backend\Redis 类并覆盖保存/获取方法。在服务中使用您的类(class)后:

// Cache
$di->setShared('cache', function() use ($config) {
return new MyCustomRedis(
new \Phalcon\Cache\Frontend\Json(['lifetime' => 172800]), // 2d
$config->redis
);
});

关于php - 如何禁用 Phalcon Redis 后端中使用的 _PHCR 键前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45461515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com