我们正在开发一种定制的缓存解决方案,该解决方案将使用 SQL Server 数据库来存储缓存对象。应用程序的托管环境不提供“内存中”缓存,例如 memcached 或应用程序结构,因此我们必须使用 SQL Server 数据库。
虽然大多数缓存对象都是简单类型(int、string、dates 等),但我们还需要存储更复杂的类型,例如DataSet
s、DataTable
s、泛型集合和自定义类。
我对 .NET 的本机序列化和反序列化经验很少,但我认为我们必须将对象序列化为某种形式(二进制、xml、JSON 等)以将其存储在数据库中,然后在我们将其拉出时对其进行反序列化的数据库。我想对“某种形式”应该是什么有一些专家意见。
我们正在使用 JSON.NET 将数据序列化为 JSON 以用于各种 AJAX 请求。我最初的想法是将缓存的数据序列化为 JSON 以将其存储在数据库中。但是,我想就性能和数据完整性最好的方法获得一些意见。