栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用某些命令或LUA脚本读取Redis上存储的多个Set

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用某些命令或LUA脚本读取Redis上存储的多个Set

在单个调用中获取许多SET的示例C#代码如下:我使用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上可以找到更多讨论,如何通过在单个调用中传递集合密钥列表来获取多个集合



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号