Laravel Predis update/delete 数组中有 1 个键

Laravel Predis update/delete 1 key in array

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

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

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

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

它是关于你如何存储它们的,如果你将它存储为一个字符串那么不,

set key value
get key -> will return you value

这里的值是您的 json/array,有 10000 个条目。

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

hmset key member1 value1 member2 value2 ...

那你可以单独update/deletemember1

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

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

希望对您有所帮助

感谢 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);