Py学习  »  Redis

在Redis中,有没有办法将没有任何公共regx模式的密钥放在相同的哈希槽中

Rohit Lakhotia • 2 年前 • 152 次点击  

我有以下数据模型,我想使用redis作为缓存。

员工:具有唯一的员工Id。

部门:具有唯一的部门Id。

一个员工只能属于一个部门,一个部门可以有许多员工。现在,系统应该支持的操作是这样的。

  1. 给定一个员工Id,找到它所属的部门。
  2. 给出一个部门Id,找到它所有员工的列表。
  3. 合并到部门,在这种情况下,任何一个部门的员工都将转移到另一个部门,这取决于数据库操作的最少数量。

我使用DynamoDB作为持久存储,其中有两个表代表员工和部门。我正在使用dynamodb事务执行合并操作,以确保ACID。

现在,我计划使用redis作为服务和数据库之间的缓存。对于每个作为密钥的员工Id,我将存储它所属的部门。对于每个部门的id作为密钥,我将存储该部门的成员列表。现在,对于合并用例,我必须更新一个编号为employee->部门地图。为此,我想使用redis事务或操作,如MSET、MGET等。

对于redis中的事务,我们需要确保所有密钥都位于相同的哈希槽中。然而,在我们的例子中,EmployeeId(Key)是随机生成的UUID,它们不会有任何公共regx。用于哈希标记的模式。但是,他们所指的价值观,即部门id,对他们来说是常见的。

在Redis中,有没有办法将没有任何公共regx模式的密钥(employee_Id)放在相同的哈希槽中?

我将同时在redis中放置所有这样的条目(我可能希望在将来执行事务),因此我考虑将一个随机字符串作为哈希标记(在“{”和“}”之间)附加到键上,但在获取键的值时,我不知道随机字符串添加的随机值,我只需要基于原始键获取值。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127897
 
152 次点击