Michał Ziembiński
Michał Ziembiński

Reputation: 1154

memcached key of keys

Is it possible?

$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
$data = array(

         'key_one' => array('something' => '0',
                          'something_else1' => 1,
                          'something_else2' => 2,
                          'something_else3' => 3,
                         ),

          'key_two' =>   array('something' => '0',
                         'something_else1' => 1,
                         'something_else2' => 2,
                         'something_else3' => 3,
                         )
         );
$result = $mc->get("data['key_one']['something_else2']");
if($result) {
  echo $result;
} else {
  echo "No data on Cache. Please refresh page pressing F5";
  $mc->set("data", $data,15) or die ("Failed to save data at Memcached server");
}

Upvotes: 1

Views: 80

Answers (3)

Michał Ziembiński
Michał Ziembiński

Reputation: 1154

Hmm okey but how about set multi, wich could be correct?

$mc->set('data')['key_deeper_1'],$value, $expired_time);

or

$data = array('key_1' => array(
                                  'key_deeper_1' => 'value',
                                  'key_deeper_2' => 'value',

                              )
             );

$mc->set('data',$value, $expired_time);
$mc-> get('data')['key_deeper_1'];

Upvotes: 0

AbraCadaver
AbraCadaver

Reputation: 78994

Your set() should work:

$mc->set('data', $data, 15);

And to get():

$result = $mc->get('data');
$something = $result['key_one']['something_else2'];
//or PHP >= 5.4.0
$result = $mc->get('data')['key_one']['something_else2'];

Upvotes: 1

Haneev
Haneev

Reputation: 775

No, will not work. Memcached is a Key-Value store. So you can retrieve the data stored by a unique key. What will work is:

$_temp_result = $mc->get('key_one');
$result = $_temp_result['something_else2']

Assuming the data is stored in Memcached as shown in $data

Upvotes: 0

Related Questions