饿虎岗资源网 Design By www.oxmxm.com
1. 问题场景
我们在使用Redis的时候经常会将对象序列化存储到Redis中,在取出的时候进行反序列化,如果对象过大在进行序列化和反序列化的时候会有一定性能问题。今天查看了CSRedis源码发现在Set和Get的时候是支持Byte[]类型,那么问题来了如果我们将对象转换成Byte[]类型进行存储是否会比序列化和反序列化操作快了?
2. 问题验证
2.1. 编写一个简单实例进行验证
List<User> list = new List<User>(); for (int i = 0; i < 1000; i++) { User user = new User() { Id = i, Name = "张三", Age = 11 }; list.Add(user); } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 //使用序列化 rds.HSet("test2", "test2", list); var list1 = rds.HGet<List<User("test2", "test2"); //使用byte方式 //rds.HSet("test", "test1", ObjectToBytes(list)); //var list2 = BytesToObject(rds.HGet<byte[]>("test", "test1")); stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double hours = timespan.TotalHours; // 总小时 double minutes = timespan.TotalMinutes; // 总分钟 double seconds = timespan.TotalSeconds; // 总秒数 double milliseconds = timespan.TotalMilliseconds; Console.WriteLine(+hours + " " + minutes + " " + seconds + " " + milliseconds); Console.ReadKey();
对象转换成Byte,和Byte转成对象公用方法。
/// <summary> /// 将一个object对象序列化,返回一个byte[] /// </summary> /// <param name="obj">能序列化的对象</param> /// <returns></returns> public static byte[] ObjectToBytes(object obj) { byte[] buff; using (MemoryStream ms = new MemoryStream()) { IFormatter iFormatter = new BinaryFormatter(); iFormatter.Serialize(ms, obj); buff = ms.GetBuffer(); } return buff; } /// <summary> /// 将一个序列化后的byte[]数组还原 /// </summary> /// <param name="Bytes"></param> /// <returns></returns> public static object BytesToObject(byte[] Bytes) { using (MemoryStream ms = new MemoryStream(Bytes)) { IFormatter formatter = new BinaryFormatter(); return formatter.Deserialize(ms); } }
注意点:两种方式要分开执行!!!
2.2 响应结果
序列化操作响应时间:
Byte操作响应时间:
我们可以明显看到Byte速度要快于序列化操作,并且Redis获取值没有问题
我们借助Redis客户端工具来看看Redis里面存储的内容:
首先是序列化的内容
然后是Byte的内容
这只是一个简单的测试,后续我还会结合项目实际情况进行测试。如果有写的不对地方欢迎各位指出问题。
总结
饿虎岗资源网 Design By www.oxmxm.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
饿虎岗资源网 Design By www.oxmxm.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 黄妃.2020-色違【米乐士娱乐】【FLAC分轨】
- LouisHayes-ArtformRevisited(2024)[24Bit-96kHz]FLAC
- 永恒英文金曲精选5《TheBestOfEverlastingFavouritesVol.5》[WAV+CUE]
- 黑鸭子2005-紫丁香[首版][WAV+CUE]
- 林忆莲《爱上一个不回家的人》XRCD版[低速原抓WAV+CUE][999M]
- 经典《历届奥斯卡金曲回顾》[正版原抓WAV+CUE] [1G]
- 群星《试音草原·女声篇》经典蒙古民歌[WAV+CUE][1G]
- 炉石传说月末上分卡组推荐 国服月末最快上分卡组推荐
- 炉石传说月底最强卡组有哪些 2024国服月底最强卡组推荐
- 炉石传说月初最强卡组有哪些 2024月初最强上分卡组推荐
- 狼人杀亮相原生鸿蒙之夜 假面科技强势登陆华为生态
- 12小时光线挑战!AI画质专家才是大平层首选
- 2024游戏IP报告:1~9月规模1960亿 68%用户愿为之付费
- 群星.2024-今夜一起为爱鼓掌电视剧原声带【相信音乐】【FLAC分轨】
- BIGFOUR.2013-大家利事【寰亚】【WAV+CUE】