> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/fr/plateforme/cache.md).

# Cache

## 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.

```powershell
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.

```powershell
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.

```powershell
Set-PSUCache -Key "CurrentDate" -Value (Get-Date) -AbsoluteExpirationFromNow ([TimeSpan]::FromHours(1))
```

#### 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.

```powershell
Set-PSUCache -Key "CurrentDate" -Value (Get-Date) -SlidingExpiration ([TimeSpan]::FromMinutes(5))
```

## 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.

```powershell
Get-PSUCache -Key "CurrentDate"
```

## 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.

```powershell
Set-PSUCache -Key "CurrentDate" -Value (Get-Date) -Persist
```

### Vider le cache

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

```powershell
# Remove a specific item
Remove-PSUCache -Key 'Key123'

# Clear the entire cache
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.

```powershell
$Cache:MyValue = "Hello"
Write-Host $Cache:MyValue
```

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.

<figure><img src="/files/JBzWoY2GtYpbJpiwXgQN" alt=""><figcaption><p>Affichage des données en cache</p></figcaption></figure>

## API

* [Get-PSUCache](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Get-PSUCache.txt)
* [Set-PSUCache](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Set-PSUCache.txt)
* [Remove-PSUCache](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Remove-PSUCache.txt)
* [Clear-PSUCache](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Clear-PSUCache.txt)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/fr/plateforme/cache.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
