最近关注了一下ssdb,它的特点是基于文件存储系统所以它支撑量大的数据而不因为内存的限制受取约束.从官网的测试报告来看其性能也非常出色和redis相当,因此可以使用它来代替redis来进行k-v数据业务的处理.想法总是美好的,不过现实中就可能带点骨感.
幸好ssdb是兼容redis的部份协议,所以直接用redis client库就可以进行一个压力测试.以于针对Redis和ssdb的几个读操进行一个简单的性能测试对比,这个测试不是直接在本机调用Redis和ssdb. 而是通过一个程序在别的服务器上调用.测试指令(get,hget,lregion)以下是测试结果截图
class Test { long mCount = 0; long mIndex = 0; private bool mRuning = true; public long Count { get { return mCount; } } public void Execute() { Console.WriteLine("* -----------------------------------------------"); Console.WriteLine("* redis get"); ConsoleWait.Start(); string result = OnTest(Config.RedisClient,GetHandler); ConsoleWait.End(); Console.WriteLine(result); Console.WriteLine("* ssdb get"); ConsoleWait.Start(); result = OnTest(Config.SSDBClient, GetHandler); ConsoleWait.End(); Console.WriteLine(result); Console.WriteLine("* -----------------------------------------------"); // Console.WriteLine("* redis lregion[1-2]"); ConsoleWait.Start(); result = OnTest(Config.RedisClient, LRegionHandler1TO2); ConsoleWait.End(); Console.WriteLine(result); Console.WriteLine("* ssdb lregion[1-2]"); ConsoleWait.Start(); result = OnTest(Config.SSDBClient, LRegionHandler1TO2); ConsoleWait.End(); Console.WriteLine(result); Console.WriteLine("* -----------------------------------------------"); |