用于用户登录检查的Redis数据架构

时间:2014-09-22 07:38:03

标签: redis nosql

我第一次来Redis。我想为我的项目创建最灵活的架构(将来或现在使用集群)。 我的主数据存储 - Redis和现在,我重写存储库: 我有EntityFramework存储库:

public class UserRepository : CommonRepository<User, Guid>
{
    public async Task<bool> IsLoginExists(string email)
    {
        return await ExistsAsync(user => user.Email == email);
    }

    public async Task<bool> CheckLoginPassword(string email, string password)
    {
        return await ExistsAsync(user => user.Email == email && user.Password == password);
    }

    public User GetByEmail(string email)
    {
        return FindOne(user => user.Email == email);
    }
}

所有用户都会以 {user:ab1a8d80-1fdb-4668-b477-f92be4815e1c} 和hashEntry的形式保留所有其他属性。 但我没有经验,我想存储用户登录(我不想加入密钥)。 最佳做法是什么?用于分片和简单查询... Crate键UserLogins并添加所有userLogins的哈希?无法查询此信息。

创建密钥:{user_login:test@mail.com}值:ab1a8d80-1fdb-4668-b477-f92be4815e1c

1 个答案:

答案 0 :(得分:0)

从Redis的书中我得到答案!

set users:9001 "{id: 9001, email: leto@dune.gov, ...}"
hset users:lookup:email leto@dune.gov 9001