sql >> データベース >  >> NoSQL >> Redis

コマンドまたはLUAスクリプトを使用してRedisに保存されている複数のセットを読み取る方法

    1回の呼び出しで多くのSETを取得するためのサンプルC#コードは次のとおりです:RedisコネクタとしてStackExchange.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#開発者に役立つことを願っています。 SE.Redis開発チームのMgravellに、彼の提案を手伝ってくれてありがとう。詳細については、GitHubで見つけることができます。1回の呼び出しでセットキーリストを渡すことで複数のセットを取得する方法



    1. PythonでRedis接続プールを使用する正しい方法

    2. Mongodb-実行中のmongoデータベースとmongodデータベースの違い

    3. MongoDBでの埋め込みドキュメントのフィルタリング

    4. 最も人気のあるオープンソースデータベースの自動化と管理の技術を完成させる:2017 @ Somenines