> 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/de/plattform/cache.md).

# Cache

## Cache auf Serverebene

PowerShell Universal bietet die Möglichkeit, einen Cache auf Serverebene zu verwenden, um Daten zu speichern, die Sie zwischen APIs, Automatisierung und Dashboards nutzen. Sie können die Lebensdauer von Cache-Elementen mit dem Cmdlet `Set-PSUCache` in jedem PowerShell-Skript konfigurieren, das Sie in PowerShell Universal ausführen. Sie können Elemente auch mit `Get-PSUCache` aus dem Cache abrufen.

Einige Beispiele für die Verwendung des Caches können sein:

* Erfassen von Daten mit einem geplanten Job und Anzeigen dieser Daten in einem Dashboard
* Erfassen von Daten aus einer API und Verwenden dieser Daten in einem Job
* Erfassen von Eingaben aus einem Dashboard und Einreihen in die Warteschlange zur Ausführung in einem geplanten Job

#### Elemente im Cache festlegen

Um Elemente im Cache festzulegen, können Sie `Set-PSUCache` verwenden. Elemente im Cache werden mit CLIXML und dem PowerShell-Serialisierer in Zeichenfolgen serialisiert. Wenn Sie Objekte aus dem Cache abrufen, sind sie keine Live-Objekte mehr.

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

Es gibt drei Arten von Techniken zur Cache-Invalidierung, die Sie einsetzen können.

#### Absolutes Ablaufdatum

Der Parameter `AbsoluteExpiration` definiert, zu welchem Zeitpunkt das Element im Cache invalidiert wird.

Das folgende Beispiel invalidiert das Cache-Element nach 10 Minuten.

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

#### Absolutes Ablaufdatum ab jetzt

Der Parameter `AbsoluteExpirationFromNow` definiert, wann ein Cache-Element invalidiert wird, wobei eine TimeSpan anstelle eines berechneten DateTime verwendet wird.

Das folgende Cache-Element wird in 1 Stunde invalidiert.

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

#### Gleitendes Ablaufdatum

Der Parameter `SlidingExpiration` erlaubt Ihnen, die Zeitspanne zu definieren, bevor das Cache-Element invalidiert wird. Jedes Mal, wenn auf das Cache-Element zugegriffen wird, wird der Timer zurückgesetzt.

Das folgende Cache-Element wird in 5 Minuten invalidiert. Wenn innerhalb dieser 5 Minuten darauf zugegriffen wird, wird es für weitere 5 Minuten zurückgesetzt.

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

## Elemente aus dem Cache abrufen

Sie können das Cmdlet `Get-PSUCache` verwenden, um Elemente aus dem Cache abzurufen. Sie müssen lediglich den Schlüssel des Elements angeben, das Sie abrufen möchten. Das deserialisierte Objekt wird vom Cmdlet zurückgegeben.

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

## Persistenter Cache

Sie können den Parameter `-Persist` von `Set-PSUCache` verwenden, um Daten in der Datenbank zu speichern. Dies ermöglicht verteiltes Caching und einen Cache, der Neustarts des PowerShell Universal-Dienstes übersteht.

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

### Cache löschen

Sie können Elemente mit `Remove-PSUCache` oder `Clear-PSUCache` aus dem Cache entfernen.

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

# Clear the entire cache
Clear-PSUCache
```

## $Cache-Bereich

APIs, Automatisierungsskripte und Dashboards unterstützen alle einen $Cache-Bereich. Dieser Bereich wird verwendet, um Daten über Runspaces hinweg zu cachen, die im Speicher jeder der Ausführungsumgebungen erhalten bleiben.

Wenn Sie zum Beispiel eine $Cache-Variable in einem Dashboard festlegen, ist sie in einer API nicht verfügbar. Dies gilt nicht bei Verwendung der integrierten Umgebung. Wenn ein Dashboard und eine API beide die integrierte Umgebung verwenden, teilen sie sich den Cache-Bereich.

Sie können Daten aus dem Cache-Bereich mit der Syntax für Variablenzuweisung und -abruf festlegen und abrufen.

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

`$Cache`-Bereich vs. Cache auf Serverebene: Der `$Cache`-Bereich unterscheidet sich vom Cache auf Serverebene, da er sich nur in der Ausführungsumgebung der Funktion befindet, die Sie verwenden. Sie sind unterschiedlich und können nicht dazu verwendet werden, den jeweils anderen abzurufen.

## Cache anzeigen

Sie können den Cache auf Serverebene in der Admin-Konsole anzeigen, indem Sie zu Platform \ Cache navigieren.

<figure><img src="/files/5aqx1pTaSz5saPjHDHqj" alt=""><figcaption><p>Anzeigen von zwischengespeicherten Daten</p></figcaption></figure>

## API

* [Get-PSUCache](/powershell-universal/de/powershell-befehle/get-psucache.md)
* [Set-PSUCache](/powershell-universal/de/powershell-befehle/set-psucache.md)
* [Remove-PSUCache](/powershell-universal/de/powershell-befehle/remove-psucache.md)
* [Clear-PSUCache](/powershell-universal/de/powershell-befehle/clear-psucache.md)


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/de/plattform/cache.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
