首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

RavenDB文档建模--琐碎的注意事项--缓存

RavenDB 使用基于 HTTP 的 REST 用于客户端和服务端的通信,也就是说我们在操作文档的时候其实就是使用 WEB 发送 HTTP 请求,那么基于这一点 RavenDB 就可以利用 HTTP 的特性来执行一些东西。 其中最常见的是 RavenDB 客户端 API 使用 HTTP 特性在客户端开启缓存。每个从服务端返回的响应都包含一个 etag 头内容,如果我们只是请求的单个文档,那么这个 etag 头内容就是文档的 etag 标题,如果我们请求的是多个文档的话,这个 etag 头内容就会包含一个计算值(具体计算值将在后面的专题详细讲解)。客户端将会缓存服务器的响应、URL 和 etag 的值,那么当有和缓存 URL 想的请求进入客户端时,我们会将其发送到服务端,同时也告知服务端,客户端存在一个特定 etag 值的请求结果。服务端在收到信息后会检查 etag 和客户端上的 etag 是否一样,如果一样就不返回数据,让客户端继续使用缓存的数据,这样就减少了网络的负载和服务端的压力。 另外,RavenDB 还有一个叫做 Aggressive Caching 的功能,它可以让看客户端 API 注册来自服务端的更改。也就是说,当我们在本地缓存了一些值后,就不需要再向服务端发送请求,让服务端判断是否要给我们返回新数据,通过这个功能如果服务端的数据发生了改变,那么服务端就会通知客户端,这时我们可以去请求服务端来获取新的数据。这个功能对于查询类似 configure 文档或大型文档来说可以大大的节省性能。

02
领券