Laravel Predis更新/删除数组中的1个键

时间:2016-09-09 10:37:33

标签: redis laravel-5.3 predis

例如,我有一个带有Redis / Predis缓存的100000个条目的数组/ json。是否可以更新或删除1个或多个条目,或者我是否必须生成100000个条目的整个数组/ json?我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

如果您将它们存储为字符串,那么它是关于如何存储它们的,

set key value
get key -> will return you value

这里的值是你的json /数组,有10000个条目。

相反,如果您将其存储在哈希中。 http://redis.io/commands#hash

hmset key member1 value1 member2 value2 ...

然后你可以单独更新/删除member1。

如果您正在使用集/列表,您可以使用lpush / lpop,srem等类似命令来实现它。

请阅读命令部分以了解有关redis数据结构的更多信息,这将使您在选择结构时更加灵活。

希望这有帮助

答案 1 :(得分:0)

如果您使用缓存服务,则必须:

  • 从缓存中获取数据
  • 更新一些条目
  • 将数据保存回缓存

您可以使用像Hashes这样的高级Redis数据结构,但是Cache服务不支持它,您需要编写自己的函数。

答案 2 :(得分:0)

谢谢Karthikeyan Gopall,我举了一个例子: 在这里我改变了field1值,它起作用:)

    $client = Redis::connection();
    $client->hmset('my:hash', ['field1'=>'value1', 'field2'=>'value2']);
    $changevalue= Redis::hset('my:hash' , 'field1' , 'newvaluesssssssssss');
    $values1    = Redis::hmget('my:hash' , 'field1');
    $values2    = Redis::hmget('my:hash' , 'field2');

    print_r($values1);
    print_r($values2);