Redis中ServiceStack.Redis和StackExchange.Redis区别详解

发布时间:2023-02-28 08:30

目前Redis已经更新到了6.0.2,那目前StackExchange.Redis 和 ServiceStack.Redis 两个客户端有什么区别呢?

StackExchange.Redis 客户端是开源免费,而ServiceStack.Redis目前我测试了4.0以上版本就有每个小时6000的限制。性能方面,对比测试,ServiceStack比StackExchange性能上高将近50%。

\"Redis中ServiceStack.Redis和StackExchange.Redis区别详解_第1张图片\"

\"Redis中ServiceStack.Redis和StackExchange.Redis区别详解_第2张图片\"

以上分别是5000条和10w条数据写入读入比对,我这是将ServiceStack解除了每小时6000条数据的限制,以下是测试代码:

		static void Main(string[] args)
    	{
            DateTime time1 = DateTime.Now;
            DateTime time2 = DateTime.Now;
            #region  StackExchange
            {
                IConnectionMultiplexer proxy = ConnectionMultiplexer.Connect(\"127.0.0.1,abortConnect=false\");
                //proxy.GetServer(\"host\",6379).FlushDatabase(0);
                IDatabase db = proxy.GetDatabase();
                db.KeyDelete(\"Key1\");
                time1 = DateTime.Now;
                for (int i = 0; i < 100000; i++)
                {
                    db.StringSet(\"Key1\", \"这是StackExchange\");
                }
                time2 = DateTime.Now;
                Console.WriteLine(\"StackExchange 赋值 100000 次, 耗时: {0} 秒\", (time2 - time1).TotalSeconds);

                time1 = DateTime.Now;
                for (int i = 0; i < 100000; i++)
                {
                    RedisValue value = db.StringGet(\"Key1\");
                }
                time2 = DateTime.Now;
                Console.WriteLine(\"StackExchange 取值 100000 次, 耗时: {0} 秒\", (time2 - time1).TotalSeconds);
                Console.WriteLine(\"----------------------------------\");
            }
            #endregion


            #region  ServiceStack
            using (RedisClient redisClient = new RedisClient(\"127.0.0.1\", 6379))
            {
                redisClient.FlushDb();
                redisClient.FlushAll();
                time1 = DateTime.Now;
                for (int i = 0; i < 100000; i++)
                {
                    redisClient.Set(\"Key2\", \"这是ServiceStack\");
                }
                time2 = DateTime.Now;
                Console.WriteLine(\"ServiceStack 赋值 100000 次, 耗时: {0} 秒\", (time2 - time1).TotalSeconds);

                Thread.Sleep(1000);
             
                time1 = DateTime.Now;
                for (int i = 0; i < 100000; i++)
                {
                     redisClient.Get(\"Key2\");
                }
                time2 = DateTime.Now;
                Console.WriteLine(\"ServiceStack 取值 100000 次, 耗时: {0} 秒\", (time2 - time1).TotalSeconds);
                Console.WriteLine(\"----------------------------------\");
            }
            #endregion
    	}

到此这篇关于Redis中ServiceStack.Redis和StackExchange.Redis区别详解的文章就介绍到这了,更多相关ServiceStack.Redis和StackExchange.Redis区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号