资料压缩
NCache 提供数据压缩以限制集群和客户端节点之间的数据流量。 数据压缩以压缩形式存储数据,这有助于更有效地利用有限的可用内存。 默认情况下,数据压缩处于禁用状态。 这可以使用以下配置 NCache 管理中心。
要了解如何启用/禁用数据压缩,请参阅 配置压缩 部分。
为什么要使用数据压缩
数据压缩以多种方式使用户受益。 当数据被压缩时,它占用的空间更少,从而减少了内存消耗。 压缩提供了更快的操作性能,因为对缓存执行的操作是读/写密集型的。 总体网络成本降低,因为在网络中传输数据所需的网络行程更少,这最终也减少了时间消耗。
配置数据压缩
所做的更改 NCache 压缩设置将影响以下配置 配置文件 相应地归档。
<compression enabled="true" threshold="500kb"/>
上面提到的示例指定了大小大于所提供阈值的项目是否应该在客户端进行压缩/解压缩。
enabled
:要启用压缩,请将此属性设置为“True”。 如果该属性尚未设置为“True”,则压缩将被禁用。 默认情况下,所有缓存都禁用压缩,因此 enabled
默认为“假”。
threshold
: 指定 threshold
价值。 只有那些大于该值的项目才会在客户端(或有时在服务器端)进行压缩/解压缩。
数据压缩有什么作用?
NCache 适用 GZip 压缩 对于大于指定阈值的所有项目,一旦通过 NCache 管理中心。 这提供了更多的内存存储并最大限度地减少了网络流量。
对于大小小于指定阈值的对象, NCache 不应用压缩。 这些项目通过网络传输并以其原始大小存储在缓存中。
数据压缩发生在哪里?
在大多数情况下,压缩/解压缩发生在客户端。 但是,有时, NCache 服务器对数据本身进行压缩/解压缩。
客户端压缩/解压
如果出现以下情况,则会发生客户端压缩/解压缩 NCache 压缩已启用,并且如果发生以下任何一种情况:
对于客户端发送到远程服务器且大小大于指定阈值的项目,需要在将这些项目发送到缓存服务器之前对其进行压缩。 缓存服务器仅存储数据,而不应用任何数据压缩。
如果客户端请求压缩数据,则缓存服务器不会应用任何解压缩,而是通过互联网以压缩形式发送数据。 客户端接收压缩形式并自行解压缩数据。
服务器端压缩/解压
如果出现以下情况,则会发生服务器端压缩/解压缩 NCache 压缩已启用,并且如果发生以下任何一种情况:
- 对于通过 Cache Startup Loader 或 Read-Thru Provider 加载的项目,并且其大小大于指定的阈值,这些项目将由 NCache 服务器。 这 NCache 服务器在从数据源接收到这些数据之后并将其存储到缓存中之前对其进行压缩。
NCache 解压缩必须通过配置的直写或后写提供程序写入数据源的压缩数据,然后再将其发送到数据源。
客户端缓存上的数据压缩
客户端缓存自行压缩数据。 如果服务器和客户端缓存都启用了压缩,则服务器根据服务器阈值压缩数据,客户端缓存根据自己的阈值压缩数据。 即使在其中任何一个上禁用压缩,也只会对启用压缩的缓存进行数据压缩。
备注
压缩独立于缓存拓扑。