Я немного запутался со всеми доступными вариантами хранения Redis.
Я хочу сделать что-то простое, и я не хочу его программировать.
Я работаю с phpredis
и Redis v2.8.6
.
У меня есть этот простой ассоциативный массив, который мне нужно сохранить. Я также должен иметь возможность получить элемент по его ключу и по всем элементам.
$a = array(
'12345' => array(
'name' => 'Post A',
'val2' => 'blah blah',
'val3' => 'blah blah blah',
),
'54321' => array(
'name' => 'Post B',
'val2' => 'blah blah',
'val3' => 'blah blah blah',
),
'998877' => array(
'name' => 'Post C',
'val2' => 'blah blah',
'val3' => 'blah blah blah',
)
);
Так что до сих пор я использовал тип hash
. сохраняя мой массив следующим образом:
foreach ($a as $key => $value) {
$this->redis->hSet('posts', $key, json_encode($value));
}
Как я могу легко получить доступ к ключу следующим образом:
public function getPost($postId)
{
return json_decode($this->redis->hGet('posts', $postId), true);
}
// This is returning the information of Post A
$post = getPost(12345);
Но теперь мне нужно перебрать все сообщения, которые я не знаю, как это сделать, и если я смогу сделать это с моей текущей структурой. Я не знаю, нужно ли мне хранить все post_id
в другом списке, чтобы иметь возможность перебирать все сообщения?
Итак, мой вопрос в том, какие типы данных следует использовать для хранения моего списка сообщений, позволяя мне получать одну запись по ее идентификатору и перебирать все сообщения?
Спасибо, Maxime