Redis中的长索引

时间:2018-08-20 08:48:49

标签: scala redis

我需要在Redis中存储以下对象。

case class Session(id: String, deviceId: String)

id字段-是一些UUID。 deviceId是三个值之一,例如:

deviceId = [D1|D2|D3]

我使用HMSET命令在Redis中将Sessions作为HashMaps存储。

将使用两种操作:

  1. 通过sessions删除所有deviceId。此操作引发 issue 1

  2. 通过session删除id。此操作引发 issue 2

因此,我遇到了以下问题:

问题1 。如果我想用sessions删除deviceId,则应该使用这样的索引:

index:sessionByDeviceId:<deviceId_value>=Set(<sesssionIds_values>)

例如:

index:sessionByDeviceId:D1=Set(id1, id2, ..., idN)

上面通过sessionByDeviceId索引获取的会话ID列表可能会很长(例如,约100万)。 如何为此操作创建有效的Redis命令(按deviceId删除会话)?

问题2 。如果我想按ID删除会话,那么我也必须为此会话删除sessionByDeviceId索引。 如何为此操作创建有效的Redis命令?

对于redis客户端,我使用the following library


也许我使用错误的数据结构存储任务的索引? 也许有更有效的方法来解决此任务?

0 个答案:

没有答案