redis - 具有唯一用户名和电子邮件的用户模型

redis - User model with unique username AND email

试图在 redis 中拥有一个用户数据库,如何实现一个逻辑以便每个用户都有 唯一的电子邮件 唯一用户名?

{
    id             int64  autoincremented
    email          string UNIQUE
    username       string UNIQUE
    hashedPassword string
    token          string
    .
    .
}

Redis 不支持约束。但是,您可以在客户端管理用户名和电子邮件的唯一性。

例如,您可以在 redis 上维护一个包含 redis 中所有现有用户名的排序集和另一个包含 redis 中所有电子邮件的排序集。

客户端在redis中插入用户之前,如果ZSCORE return NULL,则使用ZSCORE命令查询两个集合,如果元素不存在于排序集合中也在数据库中。如果两个 ZSCORE 命令都回复 NULL,客户端可以插入新客户端并在两个排序集中插入用户名和电子邮件。