我想要在 redis 或 nodejs 的一些 redis api 中有这样的东西
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
在我的例子中,我将创建一个本地用户帐户,并将其绑定(bind)到一个 SNS 帐户,因此最终用户可以通过本地用户 ID 或 SNS openid 加载他/她的个人资料信息。我想要的是为每个用户维护一个用户对象,可以从redis服务器中的本地userid或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)
}
关于node.js - 如何将一个键链接到redis中另一个存在的键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058064/