Например, у меня есть массив/json с 100 000 записей, кэшированных с помощью Redis/Predis. Возможно ли обновить или удалить 1 или более записей или мне нужно создать весь массив/json из 100000 записей? И как я могу это достичь?Laravel Predis update/delete 1 key in array
ответ
Речь идет о том, как вы храните их, если вы храните его в виде строки, то нет,
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, которая даст вам большую гибкость в выборе вашей структуры.
Надеется, что это помогает
Я думаю, что это то, что я хочу, $ 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
Если вы используете службу кэша, вы должны:
- получить данные из кэша
- обновление некоторых записей
- сохранить данные обратно в кэш
Вы можете использовать расширенные структуры данных Redis, такие как хэш, но вы не поддерживаете службу Cache, вам нужно будет написать свои собственные функции.
Спасибо Картикеяна 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);
Есть ли у вас какое-либо специальное обновления/удаления шаблона? Удалить объекты только из головы или хвоста массива? Удалить элементы случайным образом? Удалить элементы по значению или по индексу? –