我对 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
在另一个列表中以便能够遍历所有帖子?
所以我的问题是我应该使用哪种数据类型来存储我的帖子列表,允许我通过其 id 获取单个帖子并遍历所有帖子?
谢谢,马克西姆