2016-09-10 3 views
0

Я начал несколько месяцев назад с Laravel, и я хочу реализовать Redis.Как обновить или удалить запись с выхода JSON с помощью Laravel и Predis

Как и как лучше всего обновлять или удалять 1 или более записей от $test.

$allarticles = Article::all(); 
    $client = Redis::connection(); 
    $client->set('articles', $allarticles->toJson()); 
    $test = $client->set('articles'); 

Выход:

[{ 
     "id":1,"title":"xQeMKGefAW","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":2,"title":"a5wpRVRBNZ","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":3,"title":"QF5xhsMh7d","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":4,"title":"gQVbDNbcmD","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":5,"title":"FsOnoABBTg","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":6,"title":"89sS4UASJl","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":7,"title":"gpT3hO43V1","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":8,"title":"1DKvbBn7yV","content":"[email protected]","created_at":null,"updated_at":null},{ 
     "id":9,"title":"pRr2LgzezC","content":"[email protected]","created_at":null,"updated_at":null} 

Ответ:

$allarticles = Article::all()->keyBy('id'); $client = Redis::connection(); 
$newarray = array(); 
foreach ($allarticles->toArray() as $key => $value){ 
    $newarray[$key] = json_encode($value); } $client->hmset('testtest', $newarray); 
    $qwerty = $client->HGETALL('testtest'); 
    print_r($qwerty); 
} 

ответ

1

Вместо того, чтобы хранить всю JSON в виде строки, хранить их в HashMap с помощью hmset команды, идентификатор является членом и отдых json - это значение.

http://redis.io/commands#hash

Чтобы установить JSON:

hmset articles 1 {"title":"xQeMKGefAW","content":"[email protected]","created_at":null,"updated_at":null} 2 {"title":"xQeMKGefAW","content":"[email protected]","created_at":null,"updated_at":null} and so on 

Чтобы восстановить весь JSON:

hgetall articles 

Чтобы обновить один или несколько значений, используйте HMSET

Удалить одно или несколько значений используют HDEL

Надеюсь, что это поможет.

+0

Как это сделать, мне нужно сделать цикл? – Bas

+0

Вам нужно получить пару ключевых значений, например, хэш из Json. Это зависит от вашей логики приложения, тогда один вызов Hmset выполнит эту работу. Подобным же образом hgetall и heel являются одиночным вызовом. –

+0

Надеюсь, вы можете привести мне пример :) – Bas

Смежные вопросы