Redis存储性能测试

来源:互联网 发布:retrofit post json 编辑:程序博客网 时间:2024/05/29 08:16

在string类型中,不仅可以存储key-value中value是string类型,也可以存储对象类型。

 TestModel amodel = new TestModel();
 amodel.Id = 1;
 amodel.Name = "wongcony";
 amodel.Type = 1;
 amodel.Company = "nxin";

for (int i = 1; i < 1000000; i++)
{
                string keynum = i.ToString() + "key";
                client.Add(keynum, amodel);
 }

但是如果把对象类型存储在string类型中,redis自己会把对象数据转换成json字符串。当再次读取时还需要对json字符串进行反序列化。


对象类型最好存储在Hash中,可以提高存储的性能。但是读取数据时,无论是string还是hash都不消耗性能时间。

  for (int j = 1; j < 1000000; j++)
  {
                string keyhnum = j.ToString() + "hkey";
                client.SetEntryInHash(keyhnum,"Id","1");
                client.SetEntryInHash(keyhnum, "Name", "wongcony");
                client.SetEntryInHash(keyhnum, "Type", "1");
                client.SetEntryInHash(keyhnum, "Company", "nxin");
   }

TestModel amodel = new TestModel();            amodel.Id = 1;            amodel.Name = "wongcony";            amodel.Type = 1;            amodel.Company = "nxin";            //--------------------------------------------            //model已string类型存于redis            Console.WriteLine("存储于String中");            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));            for (int i = 1; i < 1000000; i++)            {                string keynum = i.ToString() + "key";                client.Add(keynum, amodel);            }            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));            var am=client.Get<TestModel>("5000key");            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));            Console.WriteLine(am.Company);            Console.WriteLine("存储于Hash中");            //--------------------------------------------            //model已hash类型存于redis            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));            for (int j = 1; j < 1000000; j++)            {                string keyhnum = j.ToString() + "hkey";                client.SetEntryInHash(keyhnum,"Id","1");                client.SetEntryInHash(keyhnum, "Name", "wongcony");                client.SetEntryInHash(keyhnum, "Type", "1");                client.SetEntryInHash(keyhnum, "Company", "nxin");            }            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));            var hm = client.GetHashValues("5000hkey");            Console.WriteLine(DateTime.Now.ToString("HH:mm:ss:fms"));

结果图片