检索 redis 哈希数据

Retrieving redis hash data

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

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

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

然而,我的问题是,这是我将所有用户的信息存储在一个散列中的正确方法,这样我就可以一起检索所有用户,并在需要时通过 ID 检索单个用户,因为我需要在前端的 table 中显示所有用户,但有时也需要通过 ID 获取单个用户。

如果没有,我需要将每个用户存储在一个单独的散列中,如下所示,并将 ID 作为密钥的一部分,我如何一次性检索所有用户并进行排序?

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

非常感谢您的帮助。

我所做的就是按照你说的,给每个用户一个id,并以users:{id}的格式存储。

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

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

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

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