组缓存数据:概述
缓存数据中具有关系或属于同一类别的项目可以使用以下方式进行分组 NCache的群组功能。 使用组,您可以对数据进行逻辑分区以提高效率。
备注
此功能仅在 NCache Enterprise.
何时使用缓存数据组?
假设您的公司有大量客户,并且您希望根据产生的收入对客户进行分类。 例如,第一类应将所有产生收入超过 1000 美元的客户添加为 重要客户 到缓存。
这可以通过对数据库执行 SQL 查询来获得包含这些客户的结果数据来完成。但是,为了节省每次在整个数据库上执行此 SQL 查询的精力,您可以将集合添加到具有组名称的缓存数据一次,以便数据驻留在该特定组下。
下表是上述场景的说明。
为什么使用组?
组提高了效率,并使用户能够轻松地根据逻辑类别获取或删除缓存数据。当缓存的数据按照一定的合理标准进行分组时,搜索属于相同标准的数据的时间显着减少。因此,分组可以产生更快的搜索结果,从而提高应用程序的可扩展性。
此外,使用组来缓存属于特定搜索条件的频繁访问的数据可以节省每次搜索数据库的成本。
查看房源
一级层次结构: 组之后没有更高级别的层次结构。 缓存项在逻辑上只能由一个组分隔。
区分大小写: 组区分大小写。
字符串数据类型: 组只能是字符串数据类型。
无重叠: 组不重叠并具有不同的名称。
与组的 CRUD 操作
NCache 使您能够使用组信息对数据执行 CRUD 操作 CacheItem
类。 CacheItem
允许您将与对象关联的其他规范设置为 property
组。 相关细节和行为解释如下。
使用组添加/更新数据
您可以添加或更新 CacheItem
通过指定一个组在缓存中。 同时,一个项目可以属于一个唯一的组,而一个组可以有许多关联的项目。
Add
操作增加了一个 CacheItem
将一组缓存到缓存中,如果密钥已存在于缓存中,则会失败并抛出异常。 您可以使用更新现有项目的组 Insert
覆盖指定项目的前一组的操作。 如果缓存中不存在键或键对应的组,则将该项添加到组中。
此外,您还可以使用 AddBulk
/InsertBulk
方法。
备注
使用 Insert
方法是在将带有组的项目添加到缓存时推荐的方法,因为它是故障安全的。
您可以添加或更新 CacheItem
在带有组的缓存中。 在添加的情况下,如果组已经存在,则操作将失败。 更新时,如果缓存中不存在该组,则将其添加到缓存中,否则将覆盖之前的组。
宠物行为研究
只能有一个项目与单个组关联。 这意味着,您不能将多个组分配给一个 CacheItem
.
使用组检索数据
将项目与组一起添加到缓存后,您可以通过指定组作为搜索条件来从缓存中检索项目。 您可以使用以下命令检索键列表和带有缓存项的键字典 GetGroupKeys
和 GetGroupData
方法,分别。
您可以检索大量 CacheItem
使用组从缓存中。 您可以使用 GetGroupKeys
和 GetGroupData
方法,分别。
使用组删除数据
您可以删除大部分 CacheItem
使用组从缓存中。 您使用 RemoveGroupData
方法,然后属于指定组的所有键和元数据都将从缓存中删除。
客户端缓存行为
添加和更新等写入操作首先在集群缓存上执行,并分别复制到客户端缓存。 读取操作直接在服务器节点上执行。