使用 Windows PowerShell 进行缓存管理 (AppFabric 1.1)

通过使用 Windows PowerShell,您可以管理缓存群集、缓存主机和缓存本身。如果使用的是安装了缓存管理功能的计算机,则可以转到「开始」菜单,单击“所有程序”、“Microsoft AppFabric 1.1 for Windows Server”,然后单击“缓存管理 Windows PowerShell”。

备注

必须使用管理权限运行 Windows PowerShell 才能正确执行某些管理命令。对于“缓存管理 Windows PowerShell”快捷方式,右键单击快捷方式并选择“以管理员身份运行”。

AppFabric 缓存 PowerShell 命令包括两种主要类别:管理命令和配置命令。本主题重点介绍管理命令。有关配置命令的详细信息,请参阅使用 Windows PowerShell 进行缓存配置(AppFabric 1.1 缓存)。本主题中的表格将管理命令分为几个类别。某些命令出现在多个表中,应用到不同的命令(共四种类型的命令)即会显示不同的参数:

  • 缓存群集相关命令

  • 缓存主机相关命令

  • 缓存相关命令

  • 控制台管理命令

AppFabric 1.1 的 2012 年 3 月更新中的命令名称更改

“AppFabric 1.1 的 2012 年 3 月更新”更新包含 AppFabric 的 Windows PowerShell 命令名称更改。这些更改将提高命令的可理解性和一致性。以下各表包括原始命令名称 (RTM) 和 2012 年 3 月命令名称 (QFE)。

为了保持向后兼容,已提供 PowerShell 脚本,以便将旧的命令名称用作新命令的别名。已在 PowerShell 模块自身内部将所有更改的参数名称别名化。

在 Windows PowerShell 会话中获取帮助

以下信息提供 AppFabric 缓存功能的管理命令摘要。认识到在 Windows PowerShell 会话中也能获取帮助,这是十分重要的。例如,以下命令显示所有管理命令:

get-command -module DistributedCacheAdministration

如果您需要有关特定命令的帮助,可以使用 get-help 命令获得帮助。例如,以下命令显示有关 New-Cache 命令的完整帮助:

get-help New-Cache -full

重要注意事项

使用本主题中介绍的 Windows PowerShell 命令时,考虑以下几点十分重要:

  • 使用这些 Windows PowerShell 命令的用户的安全身份必须具有缓存群集中所有缓存服务器上的管理员特权。

  • 命令的参数值区分大小写。例如,如果创建一个名为 NamedCache1 的缓存,则命令 Get-CacheConfig -CacheName namedcache1 将无法工作。必须匹配大小写,如 Get-CacheConfig -CacheName NamedCache1 中所述。

  • 使用 Export-CacheClusterConfigImport-CacheClusterConfig 命令对基于 XML 的群集配置做出更改时,您可以更改 XML 文件中的群集配置设置(XML 属性),但不支持通过插入或删除 XML 元素来添加或删除命名缓存和缓存主机。

  • Start-CacheClusterStop-CacheClusterRestart-CacheCluster 缓存群集命令涉及调整群集中所有缓存服务器上缓存主机 Windows 服务的状态。主要主机执行群集管理角色时,这些命令可能需要更长时间;其他缓存主机停止和启动时,必须有大多数主要主机正在运行。

  • 始终使用 Start-CacheClusterStop-CacheClusterRestart-CacheCluster 缓存群集命令启动和停止缓存服务。从服务管理工具启动和停止服务可能导致挂起。此外,必须从提升管理权限的 Windows PowerShell 会话运行这些命令。

  • Stop-CacheClusterRestart-CacheCluster 缓存群集命令导致从群集中所有缓存主机内存中刷新所有数据。

  • Set-CacheConfigImport-CacheClusterConfig 命令需要您使用 Restart-CacheCluster 重新启动缓存群集以使更改生效。

  • Remove-CacheNew-Cache 命令可用于更改命名缓存配置,而不会对群集中的其他命名缓存产生影响。

缓存群集相关命令

下表列出可用于执行群集相关操作的缓存管理 Windows Powershell 命令。

命令 (RTM) 命令 (QFE) 说明

Use-CacheCluster

Connect-AFCacheClusterConfiguration

将 Windows PowerShell 会话的上下文设置为所需缓存群集。

启动 Windows PowerShell 会话时,必须首先运行此命令。如果此命令位于缓存主机上,则运行不含有参数的命令,因为参数从计算机上的缓存配置中获得。如果您从非主机运行此命令,则可以使用以下参数指定所需缓存群集。

参数描述如下:

  • Provider:用于存储群集配置设置的提供程序。可以是 System.Data.SqlClientXML,取决于存储配置信息的方式。

  • ConnectionString:XML 配置文件的数据库或位置的连接字符串。

Start-CacheCluster

Start-AFCacheCluster

启动群集中所有缓存服务。主要主机首先启动。请注意,重新启动之后不会自动启动缓存服务,因此必须调用 Start-CacheClusterStart-CacheHost 才能启动该服务。此命令需要管理员特权。

Stop-CacheCluster

Stop-AFCacheCluster

停止群集中所有缓存服务。此命令需要管理员特权。

Restart-CacheCluster

Restart-AFCacheCluster

以正确顺序重新启动群集中的所有缓存服务。此命令需要管理员特权。

Get-CacheClusterHealth

Get-AFCacheClusterHealth

返回有关缓存群集运行状况的统计信息。

Export-CacheClusterConfig

Export-AFCacheClusterConfiguration

旨在与 Import-CacheClusterConfig 配合使用,此命令使您可以编辑具有 XML 的群集配置设置。有关详细信息,请参阅编辑群集配置设置

此命令可以将群集中当前存在的群集配置设置导出到基于 XML 的特定配置文件。无论选择将群集配置设置存储在哪个位置(SQL Server 或共享网络文件夹),都可以使用此命令。

参数描述如下:

  • File:要创建的基于 XML 配置文件的完全限定路径和名称,描述当前缓存群集配置设置。

示例:Export-CacheClusterConfig -File c:\Temp\CurrentClusterConfig.xml

Import-CacheClusterConfig

Import-AFCacheClusterConfiguration

旨在与 Export-CacheClusterConfig 配合使用,此命令使您可以编辑具有 XML 的群集配置设置。有关详细信息,请参阅编辑群集配置设置

此命令导入群集配置设置,如指定的基于 XML 的配置文件中所述。无论选择将群集配置设置存储在哪个位置(SQL Server 或共享网络文件夹),都可以使用此命令。

必须使用 Restart-CacheCluster 重新启动群集才能使任何更改生效。

参数描述如下:

  • File:基于 XML 的配置文件的完全限定路径和名称,描述应用于群集的缓存群集配置设置。

  • Force:导入配置文件而不提示确认。

  • RefreshNow:更改正在运行的群集的缓存群集配置设置。该项当前只对与内存管理有关的设置起作用。但是,若要使内存管理设置生效,必须重新启动或向群集中添加各个缓存主机。

示例:Import-CacheClusterConfig -File c:\CurrentClusterConfig.xml

Grant-CacheAllowedClientAccount

Grant-AFCacheAllowedClientAccount

授予对缓存群集的 Windows 帐户访问权限。默认情况下,缓存主机上的任何管理员帐户都具有缓存群集的访问权限。其他帐户必须使用此命令来明确添加到允许的客户端帐户列表中。

参数描述如下:

  • Account:授予对缓存群集的访问权限的 Windows 帐户。

  • Force:添加指定客户端帐户而不验证帐户是否存在。

Revoke-CacheAllowedClientAccount

Revoke-AFCacheAllowedClientAccount

吊销对缓存群集的 Windows 帐户访问权限。请注意,这将不会阻止缓存主机上的管理员访问缓存群集。

参数描述如下:

  • Account:授予对缓存群集的访问权限的 Windows 帐户。

Get-Cache

Get-AFCache

未使用任何参数时,列出有关缓存群集上所有缓存的信息。

备注

有关如何将此命令与 HostName 参数一起使用的信息,请参阅下一个表。

Update-CacheHostAllowedVersions

Update-AFCacheHostAllowedVersions

更新那些可以访问缓存群集的缓存主机及缓存客户端的版本范围。当前,版本号与运行版本有关:

  • 1 = Windows Server AppFabric v1.0

  • 3 = Microsoft AppFabric 1.1 for Windows Server

参数描述如下:

  1. BeginClientVersion:缓存客户端版本范围的起始值。

  2. EndClientVersion:缓存客户端版本范围的终止值。

  3. BeginServerVersion:缓存主机版本范围的起始值。

  4. EndServerVersion:缓存主机版本范围的终止值。

有关详细信息,请参阅AppFabric 缓存群集(AppFabric 1.1)的升级步骤

Stop-CacheNonUpdatedHosts

Stop-AFCacheNonUpdatedHosts

停止版本与指定的版本值不同的缓存主机。

参数描述如下:

  1. BeginServerVersion:缓存主机版本范围的起始值。

  2. EndServerVersion:缓存主机版本范围的终止值。

  3. HostTimeout:等待每个缓存主机停止的超时值(以秒为单位)。

  4. Version:缓存主机的代码版本。

有关详细信息,请参阅AppFabric 缓存群集(AppFabric 1.1)的升级步骤

Update-CacheConfigurationStore

Update-AFCacheConfigurationStore

在升级 AppFabric 之后,更新缓存配置存储。当升级到 Microsoft AppFabric 1.1 for Windows Server 时,该操作具有将缓存主机名称转换为其等效完全限定的域名 (FQDN) 的可视效果。

缓存主机相关命令

下表列出可用于执行 Windows PowerShell 中缓存主机相关操作的命令。

命令 (RTM) 命令 (QFE) 说明

Get-CacheHost

Get-AFCacheHost

列出有关指定缓存主机的信息。如果未传递任何参数,则列出作为缓存群集成员的所有缓存服务。请注意,Shutting Down 的状态指示正在进行正常关闭。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

示例:Get-CacheHost

Get-CacheHostConfig

Get-AFCacheHostConfiguration

返回有关指定缓存主机的配置信息。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

示例:Get-CacheConfig -HostName CacheServer1 -CachePort 22233

Set-CacheHostConfig

Set-AFCacheHostConfiguration

将缓存主机配置更新为命令参数中指定的值。除了 HostNameCachePort 之外,所有参数均为可选参数。有关详细信息,请参阅编辑群集配置设置

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的当前缓存端口号。

  • ClusterPortNumber:缓存主机使用的群集端口号。

  • ArbitratorPortNumber:新的仲裁程序端口号。

  • ReplicationPortNumber:新的复制端口号。

  • CacheSize:分配用于在缓存主机上存储数据的内存总量,单位兆字节 (MB)。

  • IsLeadHost:缓存主机的主要主机状态(“true”或“false”)。

  • HWM:内存高水印百分比(逐出应开始退出尚未过期的对象时)。

  • LWM:内存低水印百分比(逐出应开始退出过期的对象时)。到达 HWM 之后,逐出应停止尚未过期的对象时。

示例:Set-CacheConfig -HostName CacheServer1 -CachePort 22233 -LowWM 80

Start-CacheHost

Start-AFCacheHost

启动指定缓存服务。缓存服务器重新启动后,需要此命令以允许缓存服务重新加入正在运行的缓存群集。请注意,如果缓存群集已关闭,则应使用 Start-CacheCluster 命令。重新启动之后缓存服务也不会自动启动,因此必须调用 Start-CacheHostStart-CacheCluster 才能启动该服务。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

  • HostTimeout:启动指定缓存主机的超时值(以秒为单位)。默认值是 60 秒。

示例:Start-CacheHost -HostName CacheServer1 -CachePort 22233

Stop-CacheHost

Stop-AFCacheHost

停止指定缓存服务。

备注

如果系统正在执行群集管理角色,则 Stop-CacheHost 命令将不会停止缓存主机 Windows 服务,并且停止缓存主机将导致整个群集关闭。有关详细信息,请参阅主要主机和群集管理(AppFabric 1.1 缓存)

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

  • HostTimeout:启动指定缓存主机的超时值(以秒为单位)。

  • Graceful:指定应启动正常关闭。正常关闭会在停止缓存服务之前,将缓存项目移至其他缓存主机。此行为既可避免数据丢失,又可以避免缓存客户端重新填充这些项目。注意缓存群集可以使用 New-CacheCluster 命令和 GracefulShutdownEnabled 选项创建,后者用于使 Stop-CacheHost 命令的默认行为正常关闭。该操作还需要缓存群集以指定 GracefulShutdownTimeout

    警告

    仅当您已验证有足够的服务器和剩余内存来处理移至正在运行的服务器的缓存项目时,才启动正常关闭。否则,正常关闭可能挂起,因而必须取消。

示例:Stop-CacheHost -HostName CacheServer1 -CachePort 22233

Stop-CacheHostShutdown

Stop-AFCacheHostShutdown

取消正在进行的正常关闭。缓存主机仍在运行,未丢失任何数据。必要时,可能接着执行常规的负载平衡。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

Restart-CacheHost

Restart-AFCacheHost

重新启动指定的缓存服务。这些设置与 Stop-CacheHost 的设置相同。

Get-CacheStatistics

Get-AFCacheStatistics

显示指定缓存主机的统计信息,包括:总大小(以字节为单位)以及缓存对象、区域、命名缓存、请求的数量和缓存失误数。

备注

有关如何将此命令与 CacheName 参数一起使用的信息,请参阅下一个表。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

示例:Get-CacheStatistics -HostName CacheServer1 -CachePort 22233

Get-Cache

Get-AFCache

列出驻留在指定缓存主机上的所有缓存和区域。

参数描述如下:

  • HostName:缓存主机的名称。

  • CachePort:缓存主机的缓存端口号。

示例:Get-Cache -HostName CacheServer1 -CachePort 22233

Get-CacheRegion

Get-AFCacheRegion

返回缓存群集中所有区域的列表。缓存客户端只能创建或删除区域。但是缓存群集决定将驻留在哪个缓存主机上。所有参数均为可选参数。

备注

有关如何将此命令与 CacheName 参数一起使用的信息,请参阅下一个表。

参数描述如下:

  • MaxRegions:显示的区域的最大数量。此值不能与 MaxRegionsPerHost 参数一起使用。

  • MaxRegionsPerHost:从缓存群集中每个主机中显示的区域的最大数量。

示例:Get-CacheRegion -MaxRegionsPerHost 4

缓存相关命令

下表列出可用于使用 Windows PowerShell 执行缓存相关操作的命令。

命令 (RTM) 命令 (QFE) 说明

New-Cache

New-AFCache

在群集运行时,创建新的命名缓存。除 CacheName 以外的所有值均为可选。

备注

命名缓存的数量限制为 128 个。

参数描述如下:

  • CacheName:缓存的名称。

  • Secondaries:值 1 启用高可用性功能。值 0 禁用高可用性功能。默认值为 0。

  • NotificationsEnabledTrue 值启用缓存通知功能,而 False 值禁用该功能。

  • Eviction:值 LRU 启用“最近最少使用的”逐出。值 None 禁用逐出。默认值为 LRU

    警告

    None 可能导致缓存主机内存不足。

  • TimeToLive:缓存中存储的对象在过期之前的默认超时值(以分钟为单位)。默认值为 10。

  • Expirable:值 True 启用过期,而 False 禁用过期。默认值为 True。

  • MinSecondaries:为了在项目上成功执行写入操作,必须为此项目提供的最小辅助副本数量。默认值为 0

  • WriteBehindEnabled:启用 write-behind(事后写入)功能。默认值为 false

  • WriteBehindInterval:当缓存项写入缓存后,将其写入到提供程序时所需要的时间(以秒为单位)。最小值为 60,默认值为 300

  • WriteBehindRetryInterval:与 write-behind(事后写入)提供程序的连接失败时,每两次重试之间需等待的时间间隔(以秒为单位)。默认值为 60,该值也是最小值。

  • WriteBehindRetryCount:重新尝试连接 write-behind(事后写入)提供程序的最大次数。默认值为 -1,表示可以无限次重新尝试。

  • ReadThroughEnabled:启用 read-through(同步读取)功能。默认值为 false

  • Provider Type:提供程序程序集类型的完全限定的名称。此提供程序可实现 write-behind(事后写入)和 read-through(同步读取)功能。名称区分大小写。例如:RTProvider.Provider, RTProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=80e2cb5f6ba933f0.

  • ProviderSettings:一个或多个指定提供程序连接信息的键/值对。例如:@{"setting1"="value1";"setting2"="value2"}.

示例:New-Cache -CacheName NamedCache1 -Secondaries 1 -TimeToLive 15

Remove-Cache

Remove-AFCache

删除命名缓存(由 CacheName 参数指定)。

参数描述如下:

  • CacheName:缓存的名称。

示例:Remove-Cache -CacheName NamedCache1

Get-CacheConfig

Get-AFCacheConfiguration

返回由 CacheName 参数指定的命名缓存的配置详细信息。

参数描述如下:

  • CacheName:缓存的名称。

示例:Get-CacheConfig -CacheName NamedCache1

Set-CacheConfig

Set-AFCacheConfiguration

更新由 CacheName 参数指定的命名缓存的配置设置。

使用 CacheName 参数对缓存进行更改时,缓存群集可能不运行。或者,您可能希望考虑使用 Remove-CacheNew-Cache 命令。这些命令可用于更改命名缓存配置(通过停止群集实现),而不会对群集中的其他命名缓存产生影响。

有关详细信息,请参阅使用 Windows PowerShell 编辑缓存配置设置

参数描述如下:

  • CacheName:缓存的名称。

  • Secondaries:值 1 启用高可用性功能。值 0 禁用高可用性功能。默认值为 0。请注意,仅运行 Windows Server 的 Enterprise 或 DataCenter 版本的缓存主机支持此功能。

  • NotificationsEnabledTrue 值启用缓存通知功能,而 False 值禁用该功能。

  • Eviction:值 LRU 启用“最近最少使用的”逐出。值 None 禁用逐出。默认值为 LRU

    警告

    None 可能导致缓存主机内存不足。

  • TimeToLive:缓存中存储的对象在过期之前的默认超时值(以分钟为单位)。默认值为 10。

  • Expirable:值 True 启用过期,而 False 禁用过期。默认值为 True。

  • MinSecondaries:为了在项目上成功执行写入操作,必须为此项目提供的最小辅助副本数量。默认值为 0

  • WriteBehindEnabled:启用 write-behind(事后写入)功能。默认值为 false

  • WriteBehindInterval:当缓存项写入缓存后,将其写入到提供程序时所需要的时间(以秒为单位)。最小值为 60,默认值为 300

  • WriteBehindRetryInterval:与 write-behind(事后写入)提供程序的连接失败时,每两次重试之间需等待的时间间隔(以秒为单位)。默认值为 60,该值也是最小值。

  • WriteBehindRetryCount:重新尝试连接 write-behind(事后写入)提供程序的最大次数。默认值为 -1,表示可以无限次重新尝试。

  • ReadThroughEnabled:启用 read-through(同步读取)功能。默认值为 false

  • Provider Type:提供程序程序集类型的完全限定的名称。此提供程序可实现 write-behind(事后写入)和 read-through(同步读取)功能。名称区分大小写。例如:RTProvider.Provider, RTProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=80e2cb5f6ba933f0.

  • ProviderSettings:一个或多个指定提供程序连接信息的键/值对。例如:@{"setting1"="value1";"setting2"="value2"}.

  • RefreshNow:更新正在运行的缓存群集上的 read-through(同步读取)和 write-behind(事后写入)设置。使用此开关,不能更新其他设置。

示例:Set-CacheConfig -CacheName NamedCache1 -TimeToLive 30

Get-CacheStatistics

Get-AFCacheStatistics

返回命名缓存的统计信息(由 CacheName 参数指定)。

备注

有关如何将此命令与 HostNameCachePort 参数一起使用的信息,请参阅上一个表。

参数描述如下:

  • CacheName:缓存的名称。

示例:Get-CacheStatistics -CacheName NamedCache1

Get-CacheRegion

Get-AFCacheRegion

返回命名缓存中所有区域的列表(由 CacheName 参数指定)。缓存客户端只能创建或删除区域。缓存群集控制每个区域将驻留的缓存主机。

备注

有关如何将此命令与 HostNameCachePort 参数一起使用的信息,请参阅上一个表。

参数描述如下:

  • CacheName:缓存的名称。

示例:Get-CacheRegion -CacheName NamedCache1Get-CacheRegion -CacheName NamedCache1

控制台管理命令

下表列出可用于执行管理基于 Windows PowerShell 的缓存管理工具相关操作的命令。

命令 (RTM) 命令 (QFE) 说明

Set-CacheLogging

Set-AFCacheLogging

此命令对基于 Windows PowerShell 的缓存管理工具会话启用基于文件的日志记录。此命令初始化的事件跟踪只持续调用 Windows PowerShell 会话时的一段时间。

默认情况下,在 VERBOSE 级别启用日志记录。默认日志文件位于用户 %temp% 目录中,名称前缀为 DCacheAdministration,其后跟进程标识符和创建时间戳。

如果同名文件已存在,Windows PowerShell 将尝试附加到日志文件。

参数描述如下:

  • LogLevel:用于指定跟踪所捕获的事件类型的事件级别。有效值为 NONEERRORWARNINGINFOVERBOSE

  • File:日志应写入的文件夹或文件的绝对路径。如果未指定文件名,则默认为 DCacheAdminTrace[<ProcessId>].log,其中 <ProcessId> 为 Windows PowerShell 会话的 Windows 进程 ID 号。".log" 附加到指定的所有文件名称。

本示例创建捕获警告和错误消息的文件 c:\WarningLog.log

Set-CacheLogging -LogLevel WARNING -File c:\WarningLog

此命令只跟踪 Windows PowerShell 会话(而非缓存客户端或缓存主机)的事件。

Clear-CacheLogging

Clear-AFCacheLogging

停止由 Set-CacheLogging 启动的日志记录。

Invoke-CacheGC

Invoke-AFCacheGarbageCollector

手动调用缓存群集上的垃圾回收以释放未使用的内存。此操作只可用于特殊情况。通常,垃圾回收由 .NET Framework 和 AppFabric 缓存群集的内存管理功能进行管理。

exit

exit

退出 Windows PowerShell 会话。

cls

cls

清除 Windows PowerShell 屏幕。

另请参阅

概念

使用 Windows PowerShell 进行缓存配置(AppFabric 1.1 缓存)
配置设置
AppFabric 缓存配置选项
AppFabric 缓存问题疑难解答
AppFabric 缓存概念(AppFabric 1.1 缓存)
开发缓存客户端

  2012-04-05