Cha*_*hur 5 sql-server asp.net serialization caching
我们正在开发一个定制的缓存解决方案,它将使用SQL Server数据库来存储缓存的对象.应用程序的托管环境不提供"内存中"缓存,例如memcached或app fabric,因此我们必须使用SQL Server数据库.
虽然大多数缓存对象都是简单类型(int,string,date等),但我们还需要存储更复杂的类型,如DataSet
s,DataTable
s,泛型集合和自定义类.
我对.NET的本机序列化和反序列化的经验很少,但我想我们必须将对象序列化为某种形式(二进制,xml,JSON等)以将其存储在数据库中,然后在我们将其取出时将其反序列化的数据库.我想对"某种形式"应该是什么有一些专家意见.
我们正在使用JSON.NET将数据序列化为JSON以用于各种AJAX请求.我最初的想法是将缓存的数据序列化为JSON以将其存储在数据库中.但是,我想就性能和数据完整性最佳方面提出一些意见.
您提到的所有三个序列化选项(二进制,json或XML)都是序列化格式的有效选择.还有许多其他序列化格式,但您提到的三种格式是最常见的.至于在三者之间进行选择,以下是一些注意事项:
如果您将数据以二进制格式存储在数据库中,那么如果您想通过使用Sql Server Management Studio或文本编辑器查看数据,那么它就不是人类可读的.如果要手动浏览数据,则必须编写某种反序列化工具.
二进制格式可能会导致序列化对象具有最小的大小,其次是json,XML是最大的.就实际大小差异而言,这将随您的数据结构而变化.
就性能而言,二进制序列化可能比json或XML更快.但是,您必须使用您的数据对此进行基准测试,以了解其差异.
我认为有很好的.net库和BCL支持所有三种格式类型,所以任何选择都应该是可行的.
因此,您的选择取决于哪些因素对您最重要:CPU利用率,磁盘存储空间,人类可读性和/或个人偏好.
我们已经广泛使用json来序列化我们的对象以便在数据库中存储,使用JSON.Net并且我们非常喜欢它.有时通过SSMS手动查看数据很方便,json比XML更紧凑.
归档时间: |
|
查看次数: |
2375 次 |
最近记录: |