在redis键/值内搜索多个值

Dav*_*ong 5 redis node.js

我被告知在我的Heroku应用程序中使用Redis用于存储经过身份验证的用户,所以我决定今天跳进去.我想要做的是在Redis商店中存储用户的哈希,如下所示:

{
   id:4532143215432,
   username:'davejlong',
   email:'dave@davejlong.com'
}
Run Code Online (Sandbox Code Playgroud)

然后我希望能够通过用户名或ID进行搜索.这有可能与Redis不知怎的?

我正在使用node.js redis模块,该模块支持任何redis命令https://github.com/mranney/node_redis

Gan*_*mar 3

@orangeoctopus usecae 中几乎没有问题。

redis 127.0.0.1:6379> HMSET id:4532143215432 用户名 davejlong​​ emaildave@davejlong​​.com 确定 redis 127.0.0.1:6379> HMSET 用户:davejlong​​ id 4532143215432 电子邮件 dave@davejlong​​.com 确定

这会造成重复,考虑添加新值以及删除和更新。

所以我更喜欢这个

SET user:davejlong 1
HMSET user:1 username davejlong email dave@davejlong.com 
Run Code Online (Sandbox Code Playgroud)

1) 如果是用户名

 redis.get('user:davejlong',function(err,id){
     console.log('User Id of @davejlong: ' + id);
     redis.hgetall('user:'+id,function(err,user){
        console.log('User Data: ' + user);
     })
  })
Run Code Online (Sandbox Code Playgroud)

2) 如果是身份证

   redis.hgetall('user:1',function(err,user){
       console.log('User Data: ' + user);
    })
Run Code Online (Sandbox Code Playgroud)