2016-09-09 5 views
0

Например, у меня есть массив/json с 100 000 записей, кэшированных с помощью Redis/Predis. Возможно ли обновить или удалить 1 или более записей или мне нужно создать весь массив/json из 100000 записей? И как я могу это достичь?Laravel Predis update/delete 1 key in array

+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 и т.д.

Do прочитать раздел команд, чтобы узнать больше о структурах данных Redis, которая даст вам большую гибкость в выборе вашей структуры.

Надеется, что это помогает

+0

Я думаю, что это то, что я хочу, $ 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); – Bas

0

Если вы используете службу кэша, вы должны:

  • получить данные из кэша
  • обновление некоторых записей
  • сохранить данные обратно в кэш

Вы можете использовать расширенные структуры данных Redis, такие как хэш, но вы не поддерживаете службу Cache, вам нужно будет написать свои собственные функции.

0

Спасибо Картикеяна 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);