For the complete documentation index, see llms.txt. This page is also available as Markdown.

Cache

Mécanismes de mise en cache dans PowerShell Universal.

Cache au niveau du serveur

PowerShell Universal offre la possibilité d'utiliser un cache au niveau du serveur pour stocker des données utilisées entre les API, l'automatisation et les tableaux de bord. Vous pouvez configurer la durée de vie des éléments du cache à l'aide de la cmdlet Set-PSUCache dans n'importe quel script PowerShell exécuté dans PowerShell Universal. Vous pouvez également récupérer des éléments du cache à l'aide de Get-PSUCache.

Voici quelques exemples d'utilisation du cache :

  • Collecter des données avec une tâche planifiée et les afficher dans un tableau de bord

  • Collecter des données depuis une API et les utiliser dans une tâche

  • Collecter des données à partir d'une entrée dans un tableau de bord et les mettre en file d'attente pour une tâche planifiée

Définir des éléments dans le cache

Pour définir des éléments dans le cache, vous pouvez utiliser Set-PSUCache. Les éléments du cache sont sérialisés en chaînes à l'aide de CLIXML et du sérialiseur PowerShell. Lorsque vous récupérez des objets du cache, ils ne seront plus des objets actifs.

Set-PSUCache -Key "CurrentDate" -Value (Get-Date)

Il existe trois types de techniques d'invalidation du cache que vous pouvez utiliser.

Expiration absolue

Le paramètre AbsoluteExpiration définit à quel moment l'élément du cache est invalidé.

L'exemple suivant invalide l'élément du cache après 10 minutes.

Set-PSUCache -Key "CurrentDate" -Value (Get-Date) -AbsoluteExpiration (Get-Date).AddMinutes(10)

Expiration absolue à partir de maintenant

Le paramètre AbsoluteExpirationFromNow définit le moment où un élément du cache est invalidé à l'aide d'un TimeSpan plutôt que d'une DateTime calculée.

L'élément de cache suivant est invalidé 1 heure à partir de maintenant.

Expiration glissante

Le paramètre SlidingExpiration vous permet de définir le délai avant lequel l'élément du cache est invalidé. Chaque fois que l'élément du cache est consulté, le minuteur est réinitialisé.

L'élément de cache suivant sera invalidé dans 5 minutes. S'il est consulté dans ces 5 minutes, il sera réinitialisé pour 5 minutes supplémentaires.

Récupérer des éléments du cache

Vous pouvez utiliser la cmdlet Get-PSUCache pour récupérer des éléments du cache. Vous devez simplement fournir la clé de l'élément que vous souhaitez récupérer. L'objet désérialisé est retourné par la cmdlet.

Cache persistant

Vous pouvez utiliser le paramètre -Persist de Set-PSUCache pour stocker des données dans la base de données. Cela permet un cache distribué et un cache qui survivra aux redémarrages du service PowerShell Universal.

Vider le cache

Vous pouvez supprimer des éléments du cache à l'aide de Remove-PSUCache ou de Clear-PSUCache.

Portée $Cache

Les API, les scripts d'automatisation et les tableaux de bord prennent tous en charge une portée $Cache. Cette portée est utilisée pour mettre en cache des données entre les instances d'exécution (runspaces) qui persisteront en mémoire dans chacun des environnements d'exécution.

Par exemple, si vous définissez une variable $Cache dans un tableau de bord, elle ne sera pas disponible dans une API. Ce n'est pas le cas lors de l'utilisation de l'environnement intégré. Si un tableau de bord et une API utilisent tous deux l'environnement intégré, ils partagent la portée du cache.

Vous pouvez définir et récupérer des données de la portée du cache à l'aide de la syntaxe d'assignation et de récupération de variables.

Portée $Cache vs cache au niveau du serveur : la portée $Cache diffère du cache au niveau du serveur car elle réside uniquement dans l'environnement d'exécution de la fonctionnalité que vous utilisez. Ils sont distincts et ne peuvent pas être utilisés pour accéder l'un à l'autre.

Afficher le cache

Vous pouvez afficher le cache au niveau du serveur dans la console d'administration en accédant à Platform \ Cache.

Affichage des données en cache

API

Mis à jour

Ce contenu vous a-t-il été utile ?