0

我的开发环境是使用 predis 客户端库的 Laravel PHP 框架。

我可能忽略了某些方面,而且我是 Redis 的新手,但是我认为需要的是用于存储用户信息的哈希数据类型,如下所示:

$redis->hmset('users', array('id' : 1, 'username' => 'ali', 'dob' => '29/06/89', 'email' => 'a@a.com'));

然而,我的问题是,这是我将所有用户的信息存储在一个哈希中的正确方法,这样我就可以一起检索所有用户,并在必要时通过 ID 检索单个用户,因为我需要在其中显示所有用户前端有一个表,但有时还需要通过那里的 ID 来获取单个用户。

如果没有,我需要将每个用户存储在一个单独的哈希中,如下所示,其中 ID 作为密钥的一部分如何一次性检索所有用户并订购?

$redis->hmset('users:{id}', array('name' => 'ali', 'dob' => '29/06/89', 'email' => 'a@a.com'));

非常感谢您的帮助。

4

1 回答 1

1

正如你所说,我所做的就是给每个用户一个 id 并将它们存储在 format 中users:{id}

然后,您需要将所有用户 id 存储在一个集合中,或者如果顺序对您很重要,则可能是一个排序集或列表,所以像

$redis->sadd('users', {user's id});

这是用于存储在集合中的伪代码,因为我不确定 predis 的确切格式。

然后,当您要检索所有用户时,首先$redis->smembers('users')要获取所有用户 ID,然后遍历这些 ID 以检索所有用户哈希。

于 2015-05-01T08:56:34.067 回答