laravel redis 缓存将字符串长度添加到值
laravel redis cache add string length to values
我使用laravel/redis做缓存,我意识到laravel在我的值的开头添加了一些字符串,数字是字符串长度。
像这样的东西:
当我将 ABC 字符串放入一个键中时,检索到的值是这样的:
s:3:"ABC";
我该如何解决这个问题?
您的问题在于 Laravel 缓存管理器序列化它存储的值,以便它可以存储更复杂的类型,例如数组。
你要做的是unserialize
这个值,详见documentation。
因此,对于您的 predis 调用,您将执行反序列化的附加步骤
unserialize($predisClient->get('myKey'));
这样值会是"ABC"
更新:
考虑到 如果您要存储不同类型的值(包括数字),您将需要执行类似的操作
$value = $predisClient->get('myKey');
$result = is_numeric($value) ? $value : unserialize($value);
查看 Laravel 如何使用 get 方法处理此问题 here。
我使用laravel/redis做缓存,我意识到laravel在我的值的开头添加了一些字符串,数字是字符串长度。 像这样的东西: 当我将 ABC 字符串放入一个键中时,检索到的值是这样的:
s:3:"ABC";
我该如何解决这个问题?
您的问题在于 Laravel 缓存管理器序列化它存储的值,以便它可以存储更复杂的类型,例如数组。
你要做的是unserialize
这个值,详见documentation。
因此,对于您的 predis 调用,您将执行反序列化的附加步骤
unserialize($predisClient->get('myKey'));
这样值会是"ABC"
更新:
考虑到
$value = $predisClient->get('myKey');
$result = is_numeric($value) ? $value : unserialize($value);
查看 Laravel 如何使用 get 方法处理此问题 here。