laravel redis缓存将字符串长度添加到值

标签 laravel caching redis predis

我使用 laravel/redis 进行缓存,我意识到 laravel 在我的值的开头添加了一些字符串,数字是字符串长度。 像这样的东西: 当我将 ABC 字符串放入一个键中时,检索到的值是这样的:

s:3:"ABC";

我该如何解决这个问题?

最佳答案

您的问题在于 Laravel 缓存管理器序列化它存储的值,以便它可以存储更复杂的类型,例如数组。

您要做的是反序列化 值,请参阅documentation更多细节。

因此,对于您的 predis 调用,您将执行反序列化的附加步骤

unserialize($predisClient->get('myKey'));

这样的值将是“ABC”

更新:

考虑到Vladislav Rastrusny comment如果您要存储不同类型的值,包括数字,您将需要做这样的事情

$value = $predisClient->get('myKey');
$result = is_numeric($value) ? $value : unserialize($value);

查看 Laravel 如何使用 get 方法处理此问题 here .

关于laravel redis缓存将字符串长度添加到值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34219430/

相关文章:

redis - 如何用 Homebrew 软件解决[没有名称为 "redis"的可用公式。]

java - 将更多具有相同ID的项目插入Redis中的哈希

html - 如何将网页保存在Redis缓存中以提高网站速度?

php - Laravel 5 全局增删改查类

php - Laravel:具有关系的查询构建器

php - Laravel 未定义属性

caching - 强制浏览器刷新缓存的图像

asp.net - 在asp.net中设置图像过期日期

mongodb - 构建文本搜索引擎的最佳方法是什么?将需要搜索的所有内容存储在 redis 中,还是直接调用数据库?

php - Laravel 5.1 中的数组到 CSV 文件下载