【问题标题】:How to get ,update all keys and its values from redis database in c#?如何在 c# 中从 redis 数据库中获取、更新所有键及其值?
【发布时间】:2016-08-20 02:20:59
【问题描述】:

我正在使用 servicestack C# 驱动程序来连接在 6379 中运行的 redis 数据库。 我想从 redis 数据库(实际上是缓存的)中检索(GET/READ)所有键及其值。 我必须在 redisdb 中更新两个键及其值,是否可以在不使用列表或哈希类型的情况下进行更新?

我想知道如何添加多个键和值以及一次更新多个。

【问题讨论】:

    标签: c# caching redis servicestack.redis nosql


    【解决方案1】:

    对于 Redis,您需要多次更新、多次获取和多次添加。您可以为此目的使用这些命令。

    Mset - 多个集合 Mget - 多个获取 Hmset- 哈希中的多个集合。 Msetnx - 如果不存在,则为多个集。

    【讨论】:

      【解决方案2】:

      检索所有密钥的最有效方法是使用SCAN API's,例如:

      var allKeys = new List<string>();
      using (var redis = redisManager.GetClient())
      {
          foreach (var key in redis.ScanAllKeys())
          {
              allKeys.Add(key);
          }
      }
      

      您可以使用GetValues() 获取所有值以返回值列表或GetValuesMap() 以返回键值字典,例如:

      var allKeyAndValues = redis.GetValuesMap(allKeys);
      

      但根据您拥有的密钥数量,您需要分批获取它们。

      同样,您可以使用SetValues() 设置多个键和值,例如:

      redis.SetValues(allKeysAndValues);
      

      【讨论】:

        猜你喜欢
        • 2013-10-21
        • 2017-04-03
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 2014-04-10
        • 2017-08-13
        • 1970-01-01
        • 2016-09-23
        相关资源
        最近更新 更多