在Redis中查找命名空间记录

时间:2017-06-08 11:43:11

标签: redis

如何在Redis中找到所有记录?

USER_EXCHANGE = table

USER_ID = User ID (primary key)

UID = relationship

密钥存储有以下结构

USER_EXCHANGE:USER_ID:4030:UID:63867a4c6948e9405f4dd73bd9eaf8782b7a6667063dbd85014bd02046f6cc2e

我正在尝试查找用户4030的所有记录...

using (var redisClient = new RedisClient ())
{
    List<object> ALL_UID = redisClient.Get<List<object>>("USER_EXCHANGE:USER_ID:4030:UID:*");
}

我做错了什么?谢谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

您好,因为您正在尝试获取与模式匹配的所有键,您应该使用KEYS。 GET不匹配模式。将检索完整的全名。

注意这是一个调试功能,而不是生产函数。 doc:https://redis.io/commands/keys

生产简单的解决方案,建议您:

  1. 将您的密钥列表存储在LIST中 USER_EXCHANGE:USER_ID:4030 =&gt; [uid1,uid2,uid3 ....]
  2. 通过获取列表获取特定用户ID的uid列表。
  3. 这是REDIS的一个很好的做法。