Node.js 如何将一个密钥链接到另一个已存在的密钥';redis中的s值

Node.js 如何将一个密钥链接到另一个已存在的密钥';redis中的s值,node.js,redis,Node.js,Redis,我希望在redis中或者在nodejs的RedisAPI中有类似的东西 redis> HMSET local-user-id-001 id "001" name "Henry Leu" gender "m" OK redis> **LINK-KEY** facebook-openid-001 local-user-id-001 OK redis> HMGET local-user-id-001 id name gender 1) "001" 2) "Henr

我希望在redis中或者在nodejs的RedisAPI中有类似的东西

redis> HMSET local-user-id-001        id "001" name "Henry Leu" gender "m"
OK
redis> **LINK-KEY**  facebook-openid-001   local-user-id-001
OK
redis> HMGET local-user-id-001 id name gender
1) "001"
2) "Henry Leu"
3) "m"
redis> HMGET facebook-openid-001 id name gender
1) "001"
2) "Henry Leu"
3) "m"
redis> HSET facebook-openid-001 name "henryleu"
redis> HGET local-user-id-001 name
<string> henryleu
redis>HMSET local-user-id-001 id“001”name“Henry Leu”gender“m”
好啊
redis>**LINK-KEY**facebook-openid-001 local-user-id-001
好啊
redis>HMGET local-user-id-001 id名称性别
1) "001"
2) “Leu Henry”
3) “m”
redis>HMGET facebook-openid-001 id名称性别
1) "001"
2) “Leu Henry”
3) “m”
redis>HSET facebook-openid-001名称“henryleu”
redis>HGET local-user-id-001名称
亨利
在我的情况下,我将创建一个本地用户帐户,并将其绑定到SNS帐户,以便最终用户可以通过本地用户id或SNS openid加载其个人资料信息。我想要的是为每个用户维护一个用户对象,可以从redis服务器中的本地用户ID或SNS openid读取。这样,使用的空间更少,维护更简单


这是一种方法吗?

redis不支持密钥别名,但您可以添加自己的间接层。一个解决方案是使用另一个键值保持本地id和开放id之间的链接,例如:

set  link:facebook-openid-001 local-user-id-001 

def getUser(id) = {
    if isOpenId(id) hmget(get("link:" + id)) else hmget(id)
}