Bas
Bas

Reputation: 2400

Laravel Predis update/delete 1 key in array

For example i have an array/json with 100000 entries cached with Redis / Predis. Is it posible to update or delete 1 or more entries or do i have to generate the whole array/json of 100000 entries? And how can I achieve that?

Upvotes: 0

Views: 2576

Answers (3)

Bas
Bas

Reputation: 2400

Thanks Karthikeyan Gopall, i made an example: Here i changed field1 value and it works :)

    $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);

Upvotes: 0

Karthikeyan Gopall
Karthikeyan Gopall

Reputation: 5679

It is about how you store them if you are storing it as a string then no,

set key value
get key -> will return you value

Here value is your json/array with 10000 entries.

Instead if you are storing it in a hash . http://redis.io/commands#hash

hmset key member1 value1 member2 value2 ...

then you can update/delete member1 separately.

If you are using sets/lists you can achieve it with similar commands like lpush/lpop, srem etc.

Do read the commands section to know more about redis data structures which will give you more flexibility in selecting your structure.

Hope this helps

Upvotes: 1

my-nick
my-nick

Reputation: 711

If you are using cache service, you have to:

  • get data from cache
  • update some entries
  • save data back in cache

You could use advanced Redis data structures like Hashes, but you it is not supported by Cache service, you would need to write you own functions.

Upvotes: 0

Related Questions