管理缓存(Windows Server AppFabric 缓存)

运行 Windows Server AppFabric 缓存群集之后,焦点便转移到管理缓存群集上的各个缓存。 本部分提供如何使用 Windows PowerShell 命令执行常规缓存管理功能的示例。 有关缓存管理命令的完整列表,请参阅将 Windows PowerShell 与 AppFabric 缓存结合使用

创建新缓存

以下示例使用 New-Cache 命令创建一个名为 Cache1 的新缓存。 对所有缓存配置设置使用默认值。

New-Cache Cache1

以下示例创建一个名为 Cache2 的新缓存。 本示例将 Secondaries 参数设置为 1,它启用该缓存的高可用性。 请注意,这需要所有缓存主机都运行 Enterprise 或 Datacenter 版本的 Windows Server。 本示例还通过将 NotificationsEnabled 参数设置为 "true" 启用通知。 有关这些 AppFabric 缓存功能的详细信息,请参阅缓存概念

New-Cache Cache2 -Secondaries 1 -NotificationsEnabled "true"

请注意,缓存名称通常区分大小写。 此规则的例外是当缓存配置存储将 SQL Server 用于使用不区分大小写的排序规则的数据库时。

命名缓存的数量限制为 128 个。 如果您需要 128 个以上的缓存,则客户端应用程序可以考虑使用区域。 客户端应用程序可以使用 DataCache 类的 CreateRegion 方法创建区域。 可以在一个缓存中拥有多个区域,并且不同区域中具有相同名称的缓存密钥仍然是唯一的。 这并不影响应用程序设计。 因此,告诉开发团队该缓存限制是非常重要的。

列出缓存和区域

Get-Cache 命令列出缓存群集上的所有缓存及其区域。

Get-Cache

在主动缓存群集上,AppFabric 创建默认区域。 随着缓存的增加,这些默认区域的数量也会增加。 应用程序也能够创建其自己的区域。 如果您只对查看没有区域信息的缓存名称感兴趣,则可以将 MaxRegions 参数设置为 0。 以下示例演示了这一技术。

Get-Cache -MaxRegions 0

还可以查看有关特定缓存主机的缓存信息。 尽管可以跨多个主机分布单个缓存,但在主机之间该缓存中的区域可能有所不同。 以下命令显示名为 CacheServer1 且缓存端口为 22233 的缓存主机的所有缓存信息。 本示例将 MaxRegionsPerCache 限制为 10

Get-Cache -HostName CacheServer1 -CachePort 22233 -MaxRegionsPerCache 10

尽管 Get-Cache 显示区域信息,您也可以使用 Get-CacheRegion 命令查看区域信息。 以下命令显示群集中每个缓存主机的 10 个区域。

Get-CacheRegion -MaxRegionsPerHost 10

删除缓存

Remove-Cache 命令删除缓存群集中的缓存。

Remove-Cache Cache1

查看缓存配置设置

要查看缓存的当前设置,请使用 Get-CacheConfig 命令。

Get-CacheConfig Cache1

在上面的示例中,Get-CacheConfig 命令显示 Cache1 的缓存配置设置。 下面是该命令的输出示例。

CacheName            : Cache1
TimeToLive           : 10 mins
CacheType            : Partitioned
Secondaries          : 0
IsExpirable          : True
EvictionType         : LRU
NotificationsEnabled : False

下表提供了有关这些设置中每个设置的详细信息。

设置 说明

CacheName

缓存的名称。

TimeToLive

项目在过期之前驻留在缓存中的默认时间。

CacheType

缓存的类型。 它始终为 Partitioned

Secondaries

1 表示缓存使用高可用性功能。

IsExpirable

指出缓存中的对象是否可以过期。

EvictionType

指定最近最少使用 (LRU) 或 None 的逐出类型。

NotificationsEnabled

指出是否为该缓存启用通知。

有关这些缓存功能的详细信息,请参阅过期和逐出高可用性缓存通知

更改缓存配置设置

有时,您可能想更改现有缓存的配置设置。 有两个可用的过程:

  • 使用 Remove-Cache 命令删除缓存,然后使用 New-Cache 命令重新创建具有所需设置的缓存。

  • 使用 Set-CacheConfig 命令。

例如,在上面的示例中,开发人员决定对 Cache1 缓存使用缓存通知。 尽管他们将其代码更改为使用通知,但是如果没有为 Cache1 缓存启用通知,该应用程序将失败。 您可以决定删除并重新创建具有所需设置的缓存。

Remove-Cache Cache1

上面的示例删除 Cache1。 删除缓存之后,您必须等待几分钟才能重新创建它。 如果您尝试立刻重新创建缓存,则您会得到正在删除缓存的消息。 此延迟之后,您便可以重新创建缓存,指定启用通知。

New-Cache Cache1 -NotificationsEnabled True

使用该方法时,您应该使用 Get-CacheConfig 命令仔细查看配置设置。 除了您要更改的设置之外,您还必须为重新创建的缓存指定任何非默认设置。

也可以使用 Set-CacheConfig 命令。 该命令的优点是它保留其他设置,只更改您指定的设置。 该命令要求您停止缓存群集。

Stop-CacheCluster 
Set-CacheConfig Cache1 -NotificationsEnabled True 
Start-CacheCluster

对于这两种方法,都将删除缓存中的所有数据并且在短时间内缓存不可用。 因此,最好在维护窗口期间进行这些更改。 如果可能,应该将应用程序设计为在缓存关闭的短时间内仍然运行。 还要注意,对于诸如 NotificationsEnabled 之类的一些更改,客户端应用程序不会自动反映配置更改。 这些应用程序必须创建一个新的 DataCacheFactory 并且在缓存上调用 GetCache 来反映对缓存配置的更改。 执行此操作的一个简单方法是重新启动客户端应用程序。

另请参阅

概念

常规缓存群集管理任务(Windows Server AppFabric 缓存)

  2011-12-05