【发布时间】:2014-03-26 21:52:48
【问题描述】:
我对 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 获取单个帖子并循环遍历所有帖子?
谢谢, 马克西姆
【问题讨论】:
标签: redis associative-array phpredis