<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Redis‑Tutorial &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/de/category/c-de/c-bibliothek/redis-tutorial-de/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>Unabhängiges Software-Entwicklungsstudio</description>
	<lastBuildDate>Fri, 14 Aug 2026 09:48:13 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://www.foxdevelop.com/wp-content/uploads/2026/05/fox-svgrepo-com-1.png</url>
	<title>Redis‑Tutorial &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Wert schreiben</title>
		<link>https://www.foxdevelop.com/de/2026/08/14/wert-schreiben/</link>
					<comments>https://www.foxdevelop.com/de/2026/08/14/wert-schreiben/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:48:12 +0000</pubDate>
				<category><![CDATA[Redis‑Tutorial]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8615</guid>

					<description><![CDATA[StackExchange.Redis generisches Set / Get zum Schreiben und Lesen Benötigte Namespaces Das folgende Beispiel nutzt Set mit Schlüssel, Byte‑Array und Ablaufzeit. Hinweise Im vorherigen Formular‑Beispiel war fest 1000 hinterlegt – ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">StackExchange.Redis generisches Set / Get zum Schreiben und Lesen</p>



<ol class="wp-block-list">
<li>Interner Aufruf von <code>IDatabase.StringSet()</code> zum Speichern von Redis‑String‑Daten</li>



<li><strong>Serialisierungslogik</strong>：beliebiges Objekt → JSON‑Zeichenkette → UTF8‑Byte‑Array in Redis ablegen</li>



<li><strong>Deserialisierungslogik</strong>：Byte‑Array einlesen → JSON‑Zeichenkette → generisches Zielobjekt</li>



<li>Rückgabewert：<code>true</code> = erfolgreich，<code>false</code> = fehlgeschlagen</li>
</ol>



<p class="wp-block-paragraph">Benötigte Namespaces</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">using</span> <span class="hljs-selector-tag">StackExchange</span><span class="hljs-selector-class">.Redis</span>;
<span class="hljs-selector-tag">using</span> <span class="hljs-selector-tag">Newtonsoft</span><span class="hljs-selector-class">.Json</span>;
<span class="hljs-selector-tag">using</span> <span class="hljs-selector-tag">System</span><span class="hljs-selector-class">.Text</span>;</code></span></pre>


<p class="wp-block-paragraph">Das folgende Beispiel nutzt Set mit Schlüssel, Byte‑Array und Ablaufzeit.</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment">/// &lt;summary&gt;</span>
<span class="hljs-comment">/// Schreibt einen Eintrag in den Redis‑Cache</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-comment">/// &lt;param name="key"&gt;Cache‑Schlüssel&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;param name="data"&gt;Beliebiges Objekt&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;param name="cacheTime"&gt;Ablaufzeit 【Minuten】&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;returns&gt;true erfolgreich / false fehlgeschlagen&lt;/returns&gt;</span>
<span class="hljs-keyword">private</span> bool Set(string key, object data, int cacheTime)
{
    <span class="hljs-keyword">if</span> (data == <span class="hljs-keyword">null</span>)
    {
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">false</span>;
    }
    byte&#91;] entryBytes = Serialize(data);
    TimeSpan expiresIn = TimeSpan.FromMinutes(cacheTime);
    <span class="hljs-keyword">return</span> db.StringSet(key, entryBytes, expiresIn);
}

<span class="hljs-comment">/// &lt;summary&gt;</span>
<span class="hljs-comment">/// Objekt‑Serialisierung: object → byte&#91;]</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-keyword">private</span> byte&#91;] Serialize(object data)
{
    string json = JsonConvert.SerializeObject(data);
    <span class="hljs-keyword">return</span> Encoding.UTF8.GetBytes(json);
}

<span class="hljs-comment">/// &lt;summary&gt;</span>
<span class="hljs-comment">/// Cache‑Eintrag über Schlüssel auslesen</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-comment">/// &lt;typeparam name="T"&gt;Zieltyp&lt;/typeparam&gt;</span>
<span class="hljs-comment">/// &lt;param name="key"&gt;Cache‑Schlüssel&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;returns&gt;Gibt default(T) zurück, falls der Schlüssel nicht existiert&lt;/returns&gt;</span>
<span class="hljs-keyword">public</span> T Get&lt;T&gt;(string key)
{
    RedisValue rValue = db.StringGet(key);
    <span class="hljs-keyword">if</span> (!rValue.HasValue)
    {
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">default</span>(T);
    }
    T result = Deserialize&lt;T&gt;(rValue);
    <span class="hljs-keyword">return</span> result;
}

<span class="hljs-comment">/// &lt;summary&gt;</span>
<span class="hljs-comment">/// Deserialisierung: byte&#91;] → T‑Objekt</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-keyword">private</span> T Deserialize&lt;T&gt;(byte&#91;] serializedObject)
{
    <span class="hljs-keyword">if</span> (serializedObject == <span class="hljs-keyword">null</span>)
    {
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">default</span>(T);
    }
    string json = Encoding.UTF8.GetString(serializedObject);
    <span class="hljs-keyword">return</span> JsonConvert.DeserializeObject&lt;T&gt;(json);
}</code></span></pre>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">Hinweise</h4>



<ol class="wp-block-list">
<li><strong>Zeiteinheit</strong><br>Im Code bedeutet <code>TimeSpan.FromMinutes(cacheTime)</code> dass <strong>der Eingabewert in 【Minuten】 angegeben wird</strong><br>Wenn Sie im Formular <code>Set(key,val,1000)</code> aufrufen, läuft der Cache nach <strong>1000 Minuten</strong> ab, nicht nach Sekunden!</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Im vorherigen Formular‑Beispiel war fest <code>1000</code> hinterlegt – das ist eine häufige Fehlerquelle.<br>Wenn Sie <strong>Sekunden</strong> verwenden möchten, ersetzen Sie durch <code>TimeSpan.FromSeconds(cacheTime)</code></p>
</blockquote>



<ol start="2" class="wp-block-list">
<li><strong>Abhängigkeiten installieren</strong><br>Beide NuGet‑Pakete müssen installiert sein:</li>
</ol>



<ul class="wp-block-list">
<li><code>StackExchange.Redis</code></li>



<li><code>Newtonsoft.Json</code></li>
</ul>



<ol start="2" class="wp-block-list">
<li>Daten‑Speicherformat<br>Alle Objekte werden in JSON‑Binärdaten umgewandelt und in Redis gespeichert. Im Redis‑Client sehen Sie normalen JSON‑Text.</li>



<li><code>RedisValue</code>‑Kompatibilität<br><code>db.StringGet(key)</code> liefert <code>RedisValue</code>, es kann implizit nach <code>byte[]</code> konvertiert und direkt an <code>Deserialize&lt;T&gt;</code> übergeben werden.</li>



<li>Hinweis zur Thread‑Sicherheit<br><code>IConnectionMultiplexer</code> sollte als globales Singleton verwendet werden. Erstellen Sie nicht bei jedem Redis‑Lese‑/Schreibvorgang eine neue Verbindung.</li>
</ol>



<h4 class="wp-block-heading">Anwendungsbeispiel</h4>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// Schreiben (läuft nach 30 Minuten ab)</span>
bool ok = <span class="hljs-built_in">Set</span>(<span class="hljs-string">"user:1001"</span>, <span class="hljs-keyword">new</span> {Id = <span class="hljs-number">1001</span>, Name = <span class="hljs-string">"test"</span>}, <span class="hljs-number">30</span>);

<span class="hljs-comment">// Lesen</span>
<span class="hljs-keyword">var</span> user = Get&lt;dynamic&gt;(<span class="hljs-string">"user:1001"</span>);

<span class="hljs-comment">// Beispiel zum Einlesen einer Modell‑Klasse</span>
<span class="hljs-comment">// var model = Get&lt;UserInfo&gt;("user:1001");</span></code></span></pre>


<h4 class="wp-block-heading">Empfehlung</h4>



<p class="wp-block-paragraph">Lagern Sie diese Hilfsmethoden samt Redis‑Verbindungscode in einer separaten statischen Hilfsklasse <code>RedisHelper.cs</code> aus. Vermeiden Sie die Ablage im Formular‑Code, um eine saubere Trennung der Zuständigkeiten zu erreichen.<br></p>



<p class="wp-block-paragraph">Wert schreiben</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/de/2026/08/14/wert-schreiben/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mit Redis verbinden</title>
		<link>https://www.foxdevelop.com/de/2026/08/14/mit-redis-verbinden/</link>
					<comments>https://www.foxdevelop.com/de/2026/08/14/mit-redis-verbinden/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:41:58 +0000</pubDate>
				<category><![CDATA[Redis‑Tutorial]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8598</guid>

					<description><![CDATA[Diese Lektion zeigt die Redis‑Bedienung in WinForms. Die Vorgehensweise ist bei anderen Projekttypen vergleichbar, WinForms dient hier nur als Demonstrationsumgebung. Nach der Installation läuft Redis als eigenständiger Dienst. Um es ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Diese Lektion zeigt die Redis‑Bedienung in WinForms. Die Vorgehensweise ist bei anderen Projekttypen vergleichbar, WinForms dient hier nur als Demonstrationsumgebung.</p>



<p class="wp-block-paragraph">Nach der Installation läuft Redis als eigenständiger Dienst. Um es aus C# WinForms zu nutzen, stellen Sie eine Verbindung her, vergleichbar mit einer normalen Datenbankverbindung.</p>



<p class="wp-block-paragraph">Die unten stehende Verbindungszeichenfolge wird in der Datei app.config hinterlegt</p>



<h4 class="wp-block-heading">1. App.config‑Konfiguration</h4>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-meta">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">configuration</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">connectionStrings</span>&gt;</span>
    <span class="hljs-comment">&lt;!-- Redis‑Verbindungszeichenfolge --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">add</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"RedisConnectionString"</span> <span class="hljs-attr">connectionString</span>=<span class="hljs-string">"127.0.0.1:6379"</span>/&gt;</span>
    <span class="hljs-comment">&lt;!-- Kurzschreibweise connectionString="localhost" Standardport 6379 --&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">connectionStrings</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">startup</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">supportedRuntime</span> <span class="hljs-attr">version</span>=<span class="hljs-string">"v4.0"</span> <span class="hljs-attr">sku</span>=<span class="hljs-string">".NETFramework,Version=v4.5"</span> /&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">startup</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">configuration</span>&gt;</span></code></span></pre>


<p class="wp-block-paragraph">Erläuterung zur Verbindungszeichenfolge</p>



<ul class="wp-block-list">
<li><code>localhost</code> / <code>127.0.0.1</code>：Lokaler Redis‑Dienst</li>



<li>Standardport <strong>6379</strong>；Anderer Port: <code>127.0.0.1:6380</code></li>



<li>Wenn Redis mit Passwort geschützt ist: <code>127.0.0.1:6379,password=IhrPasswort</code></li>
</ul>



<h4 class="wp-block-heading">2. Form1.cs‑Hauptcode</h4>



<p class="wp-block-paragraph">Benötigtes NuGet‑Paket</p>



<p class="wp-block-paragraph"><code>StackExchange.Redis</code></p>



<p class="wp-block-paragraph">Benötigte Namespaces</p>


<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-keyword">using</span> StackExchange.Redis;
<span class="hljs-keyword">using</span> System.Configuration;</code></span></pre>

<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-keyword">public</span> <span class="hljs-keyword">partial</span> <span class="hljs-keyword">class</span> <span class="hljs-title">Form1</span> : <span class="hljs-title">Form</span>
{
    <span class="hljs-comment">// Redis‑Datenbank‑Arbeitsobjekt</span>
    <span class="hljs-keyword">private</span> IDatabase db;
    <span class="hljs-comment">// Einlesen der Verbindungszeichenfolge aus Konfigurationsdatei</span>
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">string</span> ConnectionString = ConfigurationManager.ConnectionStrings&#91;<span class="hljs-string">"RedisConnectionString"</span>].ConnectionString;
    <span class="hljs-comment">// Multiplex‑Verbindung (offiziell empfohlenes Singleton, volatile für Thread‑Sicherheit)</span>
    <span class="hljs-keyword">private</span> <span class="hljs-keyword">volatile</span> IConnectionMultiplexer connection;

    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">Form1</span>(<span class="hljs-params"></span>)</span>
    {
        InitializeComponent();
        <span class="hljs-comment">// Verbindung aufbauen</span>
        connection = ConnectionMultiplexer.Connect(ConnectionString);
        <span class="hljs-comment">// Standard‑Datenbank Nummer 0 holen</span>
        db = connection.GetDatabase();
    }

    <span class="hljs-function"><span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">button1_Click</span>(<span class="hljs-params"><span class="hljs-keyword">object</span> sender, EventArgs e</span>)</span>
    {
        <span class="hljs-comment">// Set‑Methode: Cache schreiben (Schlüssel, Wert, Ablauf in Sekunden)</span>
        <span class="hljs-keyword">bool</span> res = Set(<span class="hljs-keyword">this</span>.textBox1.Text, <span class="hljs-keyword">this</span>.textBox2.Text, <span class="hljs-number">1000</span>);
        <span class="hljs-keyword">if</span> (res)
        {
            MessageBox.Show(<span class="hljs-string">"Speichern erfolgreich"</span>);
        }
        <span class="hljs-keyword">else</span>
        {
            MessageBox.Show(<span class="hljs-string">"Speichern fehlgeschlagen"</span>);
        }
    }

    <span class="hljs-comment"><span class="hljs-doctag">///</span> <span class="hljs-doctag">&lt;summary&gt;</span></span>
    <span class="hljs-comment"><span class="hljs-doctag">///</span> Redis‑String‑Schlüssel‑Wert schreiben (einfacher Wrapper)</span>
    <span class="hljs-comment"><span class="hljs-doctag">///</span> <span class="hljs-doctag">&lt;/summary&gt;</span></span>
    <span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">Set</span>(<span class="hljs-params"><span class="hljs-keyword">string</span> key, <span class="hljs-keyword">object</span> data, <span class="hljs-keyword">int</span> cacheTime</span>)</span>
    {
        <span class="hljs-keyword">if</span> (<span class="hljs-keyword">string</span>.IsNullOrEmpty(key)) <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;
        <span class="hljs-comment">// Ablaufzeit festlegen</span>
        <span class="hljs-keyword">var</span> expire = TimeSpan.FromSeconds(cacheTime);
        <span class="hljs-keyword">return</span> db.StringSet(key, data.ToString(), expire);
    }
}</code></span></pre>


<p class="wp-block-paragraph">Mit Redis verbinden</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/de/2026/08/14/mit-redis-verbinden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Redis‑Beispiel mit WinForms</title>
		<link>https://www.foxdevelop.com/de/2026/08/14/redis-beispiel-mit-winforms/</link>
					<comments>https://www.foxdevelop.com/de/2026/08/14/redis-beispiel-mit-winforms/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:30:56 +0000</pubDate>
				<category><![CDATA[Redis‑Tutorial]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8582</guid>

					<description><![CDATA[Dieser Abschnitt behandelt C# WinForms‑Redis‑Cache‑Wrapper auf Basis von StackExchange.Redis Öffnen Sie Visual Studio, erstellen Sie ein WinForms‑Projekt und installieren Sie anschließend die Abhängigkeiten über NuGet Abhängigkeiten installieren Redis‑Wrapper‑Methoden Redis‑Beispiel mit ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Dieser Abschnitt behandelt <strong>C# WinForms‑Redis‑Cache‑Wrapper auf Basis von StackExchange.Redis</strong> </p>



<p class="wp-block-paragraph">Öffnen Sie Visual Studio, erstellen Sie ein WinForms‑Projekt und installieren Sie anschließend die Abhängigkeiten über NuGet</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="449" height="151" src="https://www.foxdevelop.com/wp-content/uploads/2026/08/image-21.png" alt="" class="wp-image-7218" srcset="https://www.foxdevelop.com/wp-content/uploads/2026/08/image-21.png 449w, https://www.foxdevelop.com/wp-content/uploads/2026/08/image-21-300x101.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></figure>



<h4 class="wp-block-heading">Abhängigkeiten installieren</h4>



<ol class="wp-block-list">
<li><strong>StackExchange.Redis</strong><br>Die am weitesten verbreitete Open‑Source‑Redis‑Client‑Bibliothek im .NET‑Ökosystem zur Kommunikation mit dem Redis‑Server.<br>Github‑Repository：<a href="https://github.com/StackExchange/StackExchange/StackExchange.Redis">https://github.com/StackExchange/StackExchange/StackExchange.Redis</a><br>Redis nutzt das TCP‑Protokoll. Theoretisch lassen sich Sockets manuell schreiben, in der Praxis werden aber ausgereifte Drittbibliotheken verwendet.</li>



<li><strong>Newtonsoft.Json（Json.NET）</strong><br>Dient der Objektserialisierung: Wandelt beliebige Objekte in JSON‑Strings und Byte‑Arrays für Redis um; deserialisiert beim Auslesen.<br>Muss über NuGet installiert werden. Der Code <code>JsonConvert.SerializeObject</code> stammt aus dieser Bibliothek.</li>
</ol>



<h4 class="wp-block-heading">Redis‑Wrapper‑Methoden</h4>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment">// Cache schreiben: Objekt speichern, Ablaufzeit in Minuten festlegen</span>
<span class="hljs-keyword">private</span> bool Set(string key, object data, int cacheTime)
{
    <span class="hljs-keyword">if</span> (data == <span class="hljs-keyword">null</span>)
    {
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">false</span>;
    }
    <span class="hljs-keyword">var</span> entryBytes = Serialize(data);
    <span class="hljs-keyword">var</span> expiresIn = TimeSpan.FromMinutes(cacheTime);
    <span class="hljs-keyword">return</span> db.StringSet(key, entryBytes, expiresIn);
}

<span class="hljs-comment">// Objekt‑Serialisierung: Entitätsobjekt → UTF8‑Byte‑Array</span>
<span class="hljs-keyword">private</span> byte&#91;] Serialize(object data)
{
    <span class="hljs-keyword">var</span> json = JsonConvert.SerializeObject(data);
    <span class="hljs-keyword">return</span> Encoding.UTF8.GetBytes(json);
}</code></span></pre>


<p class="wp-block-paragraph">Redis‑Beispiel mit WinForms</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/de/2026/08/14/redis-beispiel-mit-winforms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installation</title>
		<link>https://www.foxdevelop.com/de/2026/08/14/installation-6/</link>
					<comments>https://www.foxdevelop.com/de/2026/08/14/installation-6/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 06:54:24 +0000</pubDate>
				<category><![CDATA[Redis‑Tutorial]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8566</guid>

					<description><![CDATA[Windows Redis 3.2.100 Installation und Start Download‑Links Wichtige Dateien nach dem Entpacken Datei Zweck redis‑server.exe Redis‑Server‑Programm redis‑cli.exe Redis‑Kommandozeilen‑Client redis.windows.conf Standard‑Konfigurationsdatei redis.windows‑service.conf Spezialkonfiguration für Windows‑Systemdienst‑Installation redis‑benchmark.exe Redis‑Leistungs‑Benchmark‑Tool dump.rdb Redis‑Persistenz‑Datendatei Redis‑Server über ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Windows Redis 3.2.100 Installation und Start</p>



<h4 class="wp-block-heading">Download‑Links</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Stand 2026 bietet das offizielle Redis‑Projekt nur Installationspakete für Linux an. Die Windows‑Portierung wird von Microsoft archiviert gepflegt und erhält keine weiteren Updates.</p>



<ol class="wp-block-list">
<li>Offizielle Seite (Linux‑Version): http://redis.io/download</li>



<li>Windows‑GitHub‑Repository: https://github.com/MSOpenTech/redis/tags</li>



<li>Beispiel‑Release (win‑3.2.100):<br>https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100</li>
</ol>
</blockquote>



<h4 class="wp-block-heading">Wichtige Dateien nach dem Entpacken</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Datei</th><th>Zweck</th></tr></thead><tbody><tr><td>redis‑server.exe</td><td>Redis‑Server‑Programm</td></tr><tr><td>redis‑cli.exe</td><td>Redis‑Kommandozeilen‑Client</td></tr><tr><td>redis.windows.conf</td><td>Standard‑Konfigurationsdatei</td></tr><tr><td>redis.windows‑service.conf</td><td>Spezialkonfiguration für Windows‑Systemdienst‑Installation</td></tr><tr><td>redis‑benchmark.exe</td><td>Redis‑Leistungs‑Benchmark‑Tool</td></tr><tr><td>dump.rdb</td><td>Redis‑Persistenz‑Datendatei</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Redis‑Server über CMD starten</h4>



<ol class="wp-block-list">
<li>CMD öffnen und in den entpackten Redis‑Ordner wechseln</li>
</ol>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">cd</span> <span class="hljs-selector-tag">D</span>:\<span class="hljs-selector-tag">Redis</span>\<span class="hljs-selector-tag">Redis-x64-3</span><span class="hljs-selector-class">.2</span><span class="hljs-selector-class">.100</span></code></span></pre>


<ol start="2" class="wp-block-list">
<li>Start‑Befehl (lädt Konfigurationsdatei)</li>
</ol>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">redis-server</span> <span class="hljs-selector-tag">redis</span><span class="hljs-selector-class">.windows</span><span class="hljs-selector-class">.conf</span></code></span></pre>


<p class="wp-block-paragraph">Anzeichen für erfolgreichen Start:</p>



<ul class="wp-block-list">
<li>Betriebsmodus: <code>Running in standalone mode</code> (Einzelbetrieb‑Modus)</li>



<li>Standard‑Port: <strong>6379</strong></li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Nachteil: Bei dieser Startmethode stoppt der Redis‑Dienst sofort, wenn Sie das CMD‑Fenster schließen.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">Als Windows‑Systemdienst installieren</h4>



<p class="wp-block-paragraph">Ein einfacher Start über CMD läuft nicht im Hintergrund. Durch die Installation als Systemdienst lässt sich ein automatischer Start beim Systemboot aktivieren.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Für die Kurs‑Demo verwenden wir nur einen temporären Start, dieser Schritt dient nur als Referenz.</p>
</blockquote>



<h4 class="wp-block-heading">Redis‑Verbindung und Test von Basis‑Befehlen</h4>



<h5 class="wp-block-heading">1. Client‑Verbindungsbefehl</h5>



<p class="wp-block-paragraph">Öffnen Sie ein neues CMD‑Fenster, wechseln Sie in den Redis‑Ordner und führen Sie aus:</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">redis-cli</span><span class="hljs-selector-class">.exe</span> <span class="hljs-selector-tag">-h</span> 127<span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1</span> <span class="hljs-selector-tag">-p</span> 6379</code></span></pre>


<ul class="wp-block-list">
<li><code>-h</code>: Legt die IP‑Adresse des Redis‑Servers fest (LAN‑IP anderer Rechner für Remote‑Zugriff möglich)</li>



<li><code>-p</code>: Legt die Port‑Nummer fest</li>
</ul>



<h5 class="wp-block-heading">2. Demo grundlegender Befehle</h5>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment"># Schlüssel‑Wert‑Paar setzen</span>
set key1 value1
<span class="hljs-comment"># Wert über Schlüssel abfragen</span>
get key1

<span class="hljs-comment"># Abfrage nicht vorhandener Schlüssel gibt (nil) zurück</span>
get kkkk

set ddd <span class="hljs-number">123</span>
get ddd</code></span></pre>


<p class="wp-block-paragraph">Regeln:</p>



<ul class="wp-block-list">
<li><code>set</code> benötigt sowohl【key】als auch【value】als Parameter, fehlende Parameter lösen einen Fehler aus</li>



<li>Die Abfrage eines nicht vorhandenen Schlüssels gibt <code>(nil)</code> zurück</li>
</ul>



<h4 class="wp-block-heading">Hinweise</h4>



<ol class="wp-block-list">
<li>Windows Redis 3.2 ist sehr alt. <strong>Verwenden Sie die Windows‑Version nicht im Produktivbetrieb</strong>, ein Einsatz unter Linux wird empfohlen;</li>



<li>Für Remote‑Zugriffe müssen Firewall‑Einstellungen angepasst und die Konfigurationsdatei bearbeitet werden, um Zugriffe externer IP‑Adressen zu erlauben;</li>



<li>Das serverseitige CMD‑Fenster muss geöffnet bleiben, damit Clients sich verbinden können.</li>
</ol>



<p class="wp-block-paragraph">Installation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/de/2026/08/14/installation-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Einführung</title>
		<link>https://www.foxdevelop.com/de/2026/08/14/einfuehrung-6/</link>
					<comments>https://www.foxdevelop.com/de/2026/08/14/einfuehrung-6/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 06:47:42 +0000</pubDate>
				<category><![CDATA[Redis‑Tutorial]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8550</guid>

					<description><![CDATA[Redis Grunddefinition Redis ist ein Open‑Source‑System, geschrieben in ANSI‑C, ein netzwerkfähiges Key‑Value‑Datenbanksystem mit Arbeitsspeicher‑Speicherung und Datenpersistenz. Es bietet Client‑APIs für zahlreiche Programmiersprachen. Unterstützte Datentypen Memcached unterstützt nur Zeichenketten, das ist ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<h4 class="wp-block-heading">Redis Grunddefinition</h4>



<p class="wp-block-paragraph">Redis ist ein <strong>Open‑Source‑System, geschrieben in ANSI‑C</strong>, ein netzwerkfähiges Key‑Value‑Datenbanksystem mit Arbeitsspeicher‑Speicherung und Datenpersistenz. Es bietet Client‑APIs für zahlreiche Programmiersprachen.</p>



<ol class="wp-block-list">
<li>Es zählt zu den NoSQL‑nicht‑relationalen Datenbanken;</li>



<li>Es ist verwandt mit Memcached, bietet aber mehr Funktionen und behebt dessen Schwächen;</li>



<li>Häufig eingesetzt als ergänzende Cache‑Lösung für relationale Datenbanken wie MySQL.</li>
</ol>



<h4 class="wp-block-heading">Unterstützte Datentypen</h4>



<ul class="wp-block-list">
<li><code>String</code>：Zeichenkettentyp</li>



<li><code>List</code>：Doppelt verkettete Liste</li>



<li><code>Set</code>：Ungeordnete Sammlung</li>



<li><code>zset(sorted set)</code>：Sortierte Sammlung</li>



<li><code>Hash</code>：Hash‑Struktur (ähnlich wie Map)</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Memcached unterstützt nur Zeichenketten, das ist einer der wichtigsten Unterschiede beider Systeme.</p>
</blockquote>



<h4 class="wp-block-heading">Eigenschaften</h4>



<ol class="wp-block-list">
<li><strong>Mehrsprachen‑Client‑Unterstützung</strong><br>Offizielle SDKs für Java, C/C++, C#, PHP, JavaScript, Python, Ruby, Perl und weitere Sprachen sorgen für eine einfache Integration in Projekte.</li>



<li><strong>Master‑Slave‑Synchronisation</strong><br>Master‑Slave‑Replikation ermöglicht standortferne Backups und Lese‑Schreib‑Trennung zur Erhöhung der Verfügbarkeit.</li>



<li><strong>Hohe Leistung</strong><br>Daten liegen primär im Arbeitsspeicher, Lese‑ und Schreibzugriffe sind extrem schnell, es wird oft als verteilter Cache verwendet.</li>



<li><strong>Persistenz‑Fähigkeit</strong><br>Arbeitsspeicher‑Daten können auf Festplatte gespeichert werden, sodass nach Neustart nicht alle Daten verloren gehen (Memcached hat standardmäßig keine Persistenz).</li>
</ol>



<h4 class="wp-block-heading">Hintergrund</h4>



<p class="wp-block-paragraph">Das frühe Redis‑Projekt wurde von VMware gefördert, entwickelt und gepflegt.</p>



<p class="wp-block-paragraph">Zur Demonstration verwenden wir ein <strong>einfaches WinForm(C#) Redis‑Client‑Demo</strong>, ein Einsteigerbeispiel für die C#‑Anbindung an Redis.</p>



<ul class="wp-block-list">
<li>Schlüssel‑Wert‑Paare setzen</li>



<li>Wert per Schlüssel abfragen<br></li>
</ul>



<p class="wp-block-paragraph"><strong>Kurzer Vergleich Redis vs Memcached</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Eigenschaft</th><th>Redis</th><th>Memcached</th></tr></thead><tbody><tr><td>Datentypen</td><td>5 Basis‑Strukturen</td><td>Nur String‑Typ</td></tr><tr><td>Persistenz</td><td>Unterstützt RDB/AOF‑Persistenz</td><td>Keine Persistenz</td></tr><tr><td>Master‑Slave‑Replikation</td><td>Unterstützt</td><td>Keine native Unterstützung</td></tr><tr><td>Speicher‑Eviction</td><td>Mehrere Eviction‑Strategien</td><td>LRU‑Eviction</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Einführung</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/de/2026/08/14/einfuehrung-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
