static void HashReadTest() { Console.WriteLine("Hash 读取测试"); Console.WriteLine("请输入DB:"); var db = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入KEY:"); var key = Console.ReadLine(); Console.WriteLine("请输入开始值:"); var start = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入结束值:"); var end = Convert.ToInt32(Console.ReadLine()); Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis 开始整理。。。"); var rds = new CSRedis.CSRedisClient(null, $"127.0.0.1:6379,defaultDatabase={db},poolsize=100,ssl=false,writeBuffer=102400"); var result = new List <string>(); var stw = Stopwatch.StartNew(); for (int i = start; i < end; i++) { var member = $"{key}_{i}"; var a = rds.HGet <decimal>(key, member); result.Add($"key:{key} member:{member} value:{a}"); } stw.Stop(); //foreach (var item in result) //{ // Console.WriteLine(item); //} Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis {end - start}条数据读取完成,耗时 {stw.ElapsedMilliseconds} 毫秒。。。"); }
static void HashReadTaskTest() { Console.WriteLine("Hash 读取测试"); Console.WriteLine("请输入DB:"); var db = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入KEY:"); var key = Console.ReadLine(); Console.WriteLine("请输入开始值:"); var start = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入结束值:"); var end = Convert.ToInt32(Console.ReadLine()); var stw = Stopwatch.StartNew(); Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis 开始执行。。。"); var tasks = new List <Task <List <string> > >(); var task_count = 5; var task_total = end - start; var task_size = Convert.ToInt32(task_total / task_count); task_count = task_total % task_count > 0 ? ++task_count : task_count; for (int i = 0; i < task_count; i++) { tasks.Add(Task.Factory.StartNew <List <string> >(m => { Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis 线程{m}开始执行。。。"); var task_stw = Stopwatch.StartNew(); var task_index = Convert.ToInt32(m); var task_start = task_index * task_size; var task_end = task_index * task_size + task_size; task_end = task_end > task_total ? task_total : task_end; var task_redis = new CSRedis.CSRedisClient(null, $"127.0.0.1:6379,defaultDatabase={db},poolsize=100,ssl=false,writeBuffer=102400"); var task_result = new List <string>(); for (int j = task_start; j < task_end; j++) { var member = $"{key}_{j}"; var a = task_redis.HGet <decimal>(key, member); task_result.Add($"key:{key} member:{member} value:{a}"); } task_stw.Stop(); Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis 线程{m} 执行完成,读取数据 {task_result.Count} ,耗时 {task_stw.Elapsed.TotalMilliseconds} ms"); return(task_result); }, i)); } while (!tasks.All(m => m.IsCompleted)) { } var result = new List <string>(); foreach (var task in tasks) { result.AddRange(task.Result); } stw.Stop(); Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss:ffff} Redis {result.Count} 条数据读取完成,耗时 {stw.ElapsedMilliseconds} 毫秒。。。"); }