我已经开始使用laravel了.工作很有意思.我已经开始使用laravel的功能.我已经开始redis
在我的系统中使用安装redis服务器并在app/config/database.php
文件中更改redis的配置.通过使用,redis对单个变量工作正常set
.即
$redis = Redis::connection(); $redis->set('name', 'Test');
我可以通过使用获得价值
$redis->get('name');
但我想通过使用set
函数来设置数组.如果我尝试这样做会得到以下错误
strlen() expects parameter 1 to be string, array given
我尝试过使用以下代码.
$redis->set('name', array(5, 10)); $values = $redis->lrange('names', array(5, 10));
如果我使用
$values = $redis->command('lrange', array(5, 10));
得到以下错误
'command' is not a registered Redis command
任何人都可以解释我的问题,并且可以使用redis吗?...我们可以使用redis
?设置数组值?
评论中已经回答了这个问题,但为将来访问的人们提供了更清楚的答案.
Redis与语言无关,因此它无法识别PHP或任何其他语言特有的任何数据类型.最简单的方法是serialise
/ json_encode
on set unserialise
/ then json_decode
get 上的数据.
用于存储数据的示例json_encode
:
use Illuminate\Support\Facades\Redis; $redis = Redis::connection(); $redis->set('user_details', json_encode([ 'first_name' => 'Alex', 'last_name' => 'Richards' ]) );
使用json_decode
以下方法检索数据
use Illuminate\Support\Facades\Redis; $redis = Redis::connection(); $response = $redis->get('user_details'); $response = json_decode($response);