Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да четете множество набори, съхранени в Redis, като използвате някаква команда или LUA скрипт

Примерният код на C# за получаване на много SET в едно извикване е както следва:Използвам StackExchange.Redis като Redis конектор:

using StackExchange.Redis;
using System;
using System.Text;

namespace RedisGetMultipleKeys
{
/// <summary>
/// Class to perofrme operations on SE.Redis
/// </summary>
class Program
{
    /// <summary>
    /// Executes necessary pre-requisites 
    /// </summary>
    /// <param name="args"></param>
    static void Main(string[] args)
    {

        //Connect Redis
        var _cache = Program.Connect();

        //Store 10k Sets
        string prefix = "user";
        StringBuilder keys = new StringBuilder();
        for (int i = 0; i < 10000; i++)
        {
            keys.Append(" " + prefix + i);
            _cache.SetAdd(prefix + i, i);
        }

        var keyList = new RedisKey[10000];
        //Generate keys array
        for (int i = 0; i < 10000; i++)
        {
            var key = new RedisKey();
            key = prefix + i;
            keyList.SetValue(key, i);
        }

        var startTime = DateTime.Now;
        //Perform SUNION
        var values = _cache.SetCombine(SetOperation.Union, keyList);

        var endTime = DateTime.Now;
        TimeSpan diff = endTime.Subtract(startTime);

        Console.WriteLine("total time taken to read 10k keys = " + diff);
        Console.Read();

        //TODO: to be changed accordingly to read Set values returned other than String
        foreach (var value in values)
        {
            Console.WriteLine(value.ToString());
        }

        endTime = DateTime.Now;
        diff = endTime.Subtract(startTime);

        Console.WriteLine("total time taken to read 10k keys = " + diff);
        Console.Read();

    }


    /// <summary>
    /// Connects to Redis db
    /// </summary>
    /// <returns>Returns an instance of Redis db</returns>
    private static IDatabase Connect()
    {
        string redisConnection = "localhost:6379,ssl=false,allowAdmin=true,ConnectRetry=3,ConnectTimeout=5000,defaultDatabase=1";
        ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(redisConnection);
        return connection.GetDatabase();
    }
}

}

Надявам се, че ще помогне на C# разработчиците, които търсят решението. Благодаря на Mgravell от екипа на разработчиците на SE.Redis, че ми помогна с неговите предложения. Повече дискусия може да се намери тук в GitHub Как да получите множество комплекти, като подадете списък с ключове за набор в едно повикване



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Unicode в python

  2. WRONGTYPE Операция срещу ключ, съдържащ грешен тип стойност php

  3. Python-redis keys() връща списък с байтове обекти вместо низове

  4. Конфигурирайте състоянието на сесията на Redis в Azure

  5. Как да разположа node.js с redis на kubernetes?