<?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>Tutoriel Redis &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/fr/category/c-fr/bibliotheque-c/tutoriel-redis/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>Studio de développement logiciel indépendant</description>
	<lastBuildDate>Fri, 14 Aug 2026 09:47:34 +0000</lastBuildDate>
	<language>fr-FR</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>Tutoriel Redis &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Écrire une valeur</title>
		<link>https://www.foxdevelop.com/fr/2026/08/14/ecrire-une-valeur/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/14/ecrire-une-valeur/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:47:34 +0000</pubDate>
				<category><![CDATA[Tutoriel Redis]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8613</guid>

					<description><![CDATA[StackExchange.Redis : méthodes génériques Set / Get pour écriture et lecture Espaces de noms à importer L’exemple ci‑dessous utilise Set : on transmet une clé, un tableau d’octets et une durée d’expiration. ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">StackExchange.Redis : méthodes génériques Set / Get pour écriture et lecture</p>



<ol class="wp-block-list">
<li>L’appel sous‑jacent <code>IDatabase.StringSet()</code> écrit des données de type chaîne dans Redis</li>



<li><strong>Logique de sérialisation</strong> : objet arbitraire → chaîne JSON → tableau d’octets UTF‑8 stocké dans Redis</li>



<li><strong>Logique de désérialisation</strong> : lecture du tableau d’octets → chaîne JSON → objet générique cible</li>



<li>Valeur de retour : <code>true</code> = réussi, <code>false</code> = échec</li>
</ol>



<p class="wp-block-paragraph">Espaces de noms à importer</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">L’exemple ci‑dessous utilise Set : on transmet une clé, un tableau d’octets et une durée d’expiration.</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment">/// &lt;summary&gt;</span>
<span class="hljs-comment">/// Écrire une entrée dans le cache Redis</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-comment">/// &lt;param name="key"&gt;Clé de cache&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;param name="data"&gt;Objet quelconque&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;param name="cacheTime"&gt;Durée d’expiration 【minutes】&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;returns&gt;true réussi / false échec&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">/// Sérialisation d’objet : 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">/// Lire le cache à partir d’une clé</span>
<span class="hljs-comment">/// &lt;/summary&gt;</span>
<span class="hljs-comment">/// &lt;typeparam name="T"&gt;Type cible&lt;/typeparam&gt;</span>
<span class="hljs-comment">/// &lt;param name="key"&gt;Clé de cache&lt;/param&gt;</span>
<span class="hljs-comment">/// &lt;returns&gt;Retourne default(T) si la clé n’existe pas&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">/// Désérialisation : byte&#91;] → objet de type T</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">Remarques</h4>



<ol class="wp-block-list">
<li><strong>Unité de temps</strong><br>Dans le code <code>TimeSpan.FromMinutes(cacheTime)</code> signifie que <strong>la valeur fournie est exprimée en 【minutes】</strong><br>Si vous appelez <code>Set(key,val,1000)</code> depuis votre formulaire, le cache expirera au bout de <strong>1000 minutes</strong>, pas en secondes !</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">L’exemple du formulaire utilisait la valeur codée en dur <code>1000</code>, c’est une erreur fréquente.<br>Si vous voulez utiliser des <strong>secondes</strong>, remplacez‑le par <code>TimeSpan.FromSeconds(cacheTime)</code></p>
</blockquote>



<ol start="2" class="wp-block-list">
<li><strong>Installation des dépendances</strong><br>Installez ces deux paquets NuGet :</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>Format de stockage des données<br>Tous les objets sont sérialisés en binaire JSON et sauvegardés dans Redis ; ce que vous voyez dans un client Redis est du texte JSON standard.</li>



<li>Compatibilité <code>RedisValue</code><br><code>db.StringGet(key)</code> renvoie un <code>RedisValue</code>, qui se convertit implicitement en <code>byte[]</code> et peut être passé directement à <code>Deserialize&lt;T&gt;</code>.</li>



<li>Conseil sur la sécurité des threads<br><code>IConnectionMultiplexer</code> doit être un singleton global. Ne créez pas une nouvelle connexion à chaque lecture‑écriture Redis.</li>
</ol>



<h4 class="wp-block-heading">Exemple d’utilisation</h4>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-comment">// Écrire une entrée (expire au bout de 30 minutes)</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">// Lire la valeur</span>
<span class="hljs-keyword">var</span> user = Get&lt;dynamic&gt;(<span class="hljs-string">"user:1001"</span>);

<span class="hljs-comment">// Exemple de lecture d’un modèle d’entité</span>
<span class="hljs-comment">// var model = Get&lt;UserInfo&gt;("user:1001");</span></code></span></pre>


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



<p class="wp-block-paragraph">Extrayez ces méthodes d’assistance et le code de connexion Redis dans une classe statique séparée <code>RedisHelper.cs</code>. Évitez de les placer dans le code‑behind du formulaire pour séparer les responsabilités.<br></p>



<p class="wp-block-paragraph">Écrire une valeur</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/14/ecrire-une-valeur/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Se connecter à Redis</title>
		<link>https://www.foxdevelop.com/fr/2026/08/14/se-connecter-a-redis/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/14/se-connecter-a-redis/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:41:33 +0000</pubDate>
				<category><![CDATA[Tutoriel Redis]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8596</guid>

					<description><![CDATA[Cette leçon montre comment utiliser Redis depuis WinForms. Le fonctionnement est identique pour d’autres types de projets ; WinForms sert uniquement d’exemple de démonstration. Une fois installé, Redis s’exécute comme un ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Cette leçon montre comment utiliser Redis depuis WinForms. Le fonctionnement est identique pour d’autres types de projets ; WinForms sert uniquement d’exemple de démonstration.</p>



<p class="wp-block-paragraph">Une fois installé, Redis s’exécute comme un service indépendant. Pour l’utiliser en C# WinForms, vous devez vous y connecter, de la même manière qu’avec une base de données classique.</p>



<p class="wp-block-paragraph">La chaîne de connexion ci‑dessous est placée dans le fichier app.config</p>



<h4 class="wp-block-heading">1. Configuration App.config</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;!-- Chaîne de connexion Redis --&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;!-- Forme courte connectionString="localhost" port par défaut 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">Explication de la chaîne de connexion</p>



<ul class="wp-block-list">
<li><code>localhost</code> / <code>127.0.0.1</code>：Service Redis local</li>



<li>Port par défaut <strong>6379</strong> ; pour un port différent : <code>127.0.0.1:6380</code></li>



<li>Si Redis est protégé par un mot‑de‑passe : <code>127.0.0.1:6379,password=votremotdepasse</code></li>
</ul>



<h4 class="wp-block-heading">2. Code principal Form1.cs</h4>



<p class="wp-block-paragraph">Paquet NuGet requis</p>



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



<p class="wp-block-paragraph">Espaces de noms à importer</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">// Objet d'accès à la base Redis</span>
    <span class="hljs-keyword">private</span> IDatabase db;
    <span class="hljs-comment">// Lecture de la chaîne de connexion depuis le fichier de configuration</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">// Connexion multiplexée (singleton recommandé par l'éditeur, volatile pour la sécurité des threads)</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">// Créer la connexion</span>
        connection = ConnectionMultiplexer.Connect(ConnectionString);
        <span class="hljs-comment">// Récupérer la base de données par défaut numéro 0</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">// Méthode Set : écrire dans le cache (clé, valeur, expiration en secondes)</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">"Opération réussie"</span>);
        }
        <span class="hljs-keyword">else</span>
        {
            MessageBox.Show(<span class="hljs-string">"Échec de l'opération"</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> Enregistrement clé‑valeur chaîne Redis (wrapper simplifié)</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">// Définir le délai d'expiration</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">Se connecter à Redis</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/14/se-connecter-a-redis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Démonstration Redis avec WinForms</title>
		<link>https://www.foxdevelop.com/fr/2026/08/14/demonstration-redis-avec-winforms/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/14/demonstration-redis-avec-winforms/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 09:30:39 +0000</pubDate>
				<category><![CDATA[Tutoriel Redis]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8580</guid>

					<description><![CDATA[Cette section présente un wrapper de cache Redis en C# WinForms basé sur StackExchange.Redis Ouvrez Visual Studio, créez un projet WinForms puis installez les paquets de dépendance via NuGet Installer ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Cette section présente <strong>un wrapper de cache Redis en C# WinForms basé sur StackExchange.Redis</strong> </p>



<p class="wp-block-paragraph">Ouvrez Visual Studio, créez un projet WinForms puis installez les paquets de dépendance via 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">Installer les dépendances</h4>



<ol class="wp-block-list">
<li><strong>StackExchange.Redis</strong><br>Le client open‑source Redis le plus répandu de l’écosystème .NET pour communiquer avec le serveur Redis.<br>Dépôt Github：<a href="https://github.com/StackExchange/StackExchange/StackExchange.Redis">https://github.com/StackExchange/StackExchange/StackExchange.Redis</a><br>Redis utilise le protocole TCP. Théoriquement on pourrait écrire des sockets bruts, mais les bibliothèques tierces éprouvées sont utilisées en production.</li>



<li><strong>Newtonsoft.Json（Json.NET）</strong><br>Gère la sérialisation : transforme des objets en chaînes JSON puis en tableaux d’octets pour Redis ; désérialise à la lecture.<br>À installer depuis NuGet. La méthode <code>JsonConvert.SerializeObject</code> provient de cette bibliothèque.</li>
</ol>



<h4 class="wp-block-heading">Méthodes du wrapper Redis</h4>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment">// Écrire dans le cache : stocker un objet avec expiration en minutes</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">// Sérialisation objet : entité → tableau d’octets UTF8</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">Démonstration Redis avec WinForms</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/14/demonstration-redis-avec-winforms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installation</title>
		<link>https://www.foxdevelop.com/fr/2026/08/14/installation-5/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/14/installation-5/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 06:54:07 +0000</pubDate>
				<category><![CDATA[Tutoriel Redis]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8564</guid>

					<description><![CDATA[Installation et démarrage de Redis 3.2.100 sur Windows Liens de téléchargement Fichiers clés après extraction Fichier Rôle redis‑server.exe Programme serveur Redis redis‑cli.exe Outil client en ligne de commande Redis redis.windows.conf ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Installation et démarrage de Redis 3.2.100 sur Windows</p>



<h4 class="wp-block-heading">Liens de téléchargement</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">À l’heure actuelle (2026), Redis officiel ne fournit que des paquets pour Linux. La version Windows est archivée et maintenue par Microsoft, sans nouvelle mise à jour.</p>



<ol class="wp-block-list">
<li>Site officiel (version Linux) : http://redis.io/download</li>



<li>Dépôt Github pour Windows : https://github.com/MSOpenTech/redis/tags</li>



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



<h4 class="wp-block-heading">Fichiers clés après extraction</h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Fichier</th><th>Rôle</th></tr></thead><tbody><tr><td>redis‑server.exe</td><td>Programme serveur Redis</td></tr><tr><td>redis‑cli.exe</td><td>Outil client en ligne de commande Redis</td></tr><tr><td>redis.windows.conf</td><td>Fichier de configuration par défaut</td></tr><tr><td>redis.windows‑service.conf</td><td>Configuration dédiée pour l’installation comme service Windows</td></tr><tr><td>redis‑benchmark.exe</td><td>Outil de test de performance Redis</td></tr><tr><td>dump.rdb</td><td>Fichier de données persistantes Redis</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Lancer le serveur Redis depuis CMD</h4>



<ol class="wp-block-list">
<li>Ouvrez CMD et allez dans le dossier où vous avez extrait Redis</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>Commande de lancement (charge le fichier de configuration)</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">Indicateurs de démarrage réussi :</p>



<ul class="wp-block-list">
<li>Mode d’exécution : <code>Running in standalone mode</code> (mode autonome)</li>



<li>Port par défaut : <strong>6379</strong></li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Inconvénient : avec cette méthode, <strong>fermer la fenêtre CMD arrête immédiatement le service Redis</strong></p>
</blockquote>



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



<h4 class="wp-block-heading">Installer Redis comme service système Windows</h4>



<p class="wp-block-paragraph">Un lancement simple via CMD ne permet pas de fonctionner en arrière‑plan. L’installation en service système autorise le démarrage automatique au démarrage de Windows.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Nous utilisons seulement un lancement temporaire pour la démonstration du cours, cette étape est donnée à titre indicatif.</p>
</blockquote>



<h4 class="wp-block-heading">Connexion Redis et test des commandes basiques</h4>



<h5 class="wp-block-heading">1. Commande de connexion client</h5>



<p class="wp-block-paragraph">Ouvrez une nouvelle fenêtre CMD, allez dans le dossier Redis et exécutez :</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> : indique l’adresse IP du serveur Redis (vous pouvez renseigner une IP du réseau local pour une connexion distante)</li>



<li><code>-p</code> : indique le numéro de port</li>
</ul>



<h5 class="wp-block-heading">2. Démonstration des commandes de base</h5>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment"># Définir une paire clé‑valeur</span>
set key1 value1
<span class="hljs-comment"># Récupérer la valeur d’une clé</span>
get key1

<span class="hljs-comment"># La requête sur une clé inexistante renvoie (nil)</span>
get kkkk

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


<p class="wp-block-paragraph">Règles :</p>



<ul class="wp-block-list">
<li><code>set</code> attend à la fois le paramètre【key】et【value】, une absence de paramètres provoque une erreur</li>



<li>Interroger une clé qui n’existe pas renvoie <code>(nil)</code></li>
</ul>



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



<ol class="wp-block-list">
<li>Redis 3.2 pour Windows est très ancien. <strong>Évitez d’utiliser la version Windows en environnement de production</strong>, préférez un déploiement sous Linux ;</li>



<li>Pour les connexions distantes, adaptez le pare‑feu et modifiez le fichier de configuration pour autoriser les accès depuis des IP externes ;</li>



<li>La fenêtre CMD du serveur doit rester ouverte pour que les clients puissent se connecter.</li>
</ol>



<p class="wp-block-paragraph">Installation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/14/installation-5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Présentation</title>
		<link>https://www.foxdevelop.com/fr/2026/08/14/presentation-6/</link>
					<comments>https://www.foxdevelop.com/fr/2026/08/14/presentation-6/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 06:46:58 +0000</pubDate>
				<category><![CDATA[Tutoriel Redis]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8548</guid>

					<description><![CDATA[Définition de base de Redis Redis est un logiciel open‑source écrit en ANSI C, un système de stockage / base de données clé‑valeur accessible sur le réseau, fonctionnant en mémoire ...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<h4 class="wp-block-heading">Définition de base de Redis</h4>



<p class="wp-block-paragraph">Redis est un <strong>logiciel open‑source écrit en ANSI C</strong>, un système de stockage / base de données clé‑valeur accessible sur le réseau, fonctionnant en mémoire et avec persistance des données. Il propose des API client pour de multiples langages de programmation.</p>



<ol class="wp-block-list">
<li>Il appartient aux bases de données NoSQL non relationnelles ;</li>



<li>Il appartient à la même famille que Memcached, mais il est plus complet et comble beaucoup de ses limites ;</li>



<li>Il est souvent utilisé comme solution de cache complémentaire aux bases relationnelles comme MySQL.</li>
</ol>



<h4 class="wp-block-heading">Types de données pris en charge</h4>



<ul class="wp-block-list">
<li><code>String</code> : type chaîne de caractères</li>



<li><code>List</code> : liste doublement chaînée</li>



<li><code>Set</code> : collection non ordonnée</li>



<li><code>zset(sorted set)</code> : collection triée</li>



<li><code>Hash</code> : structure de hachage (semblable à Map)</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Memcached ne gère que le type chaîne, c’est l’une des différences les plus marquantes entre les deux outils.</p>
</blockquote>



<h4 class="wp-block-heading">Fonctionnalités</h4>



<ol class="wp-block-list">
<li><strong>Prise en charge multi‑langages</strong><br>Les SDK officiels existent pour Java, C/C++, C#, PHP, JavaScript, Python, Ruby, Perl et bien d’autres langages pour une intégration facile.</li>



<li><strong>Synchronisation maître‑esclave</strong><br>La réplication maître‑esclave permet les sauvegardes distantes et la séparation lecture‑écriture pour améliorer la disponibilité.</li>



<li><strong>Haute performance</strong><br>Les données résident principalement en mémoire, les lectures et écritures sont très rapides, il est largement utilisé comme cache distribué.</li>



<li><strong>Persistance des données</strong><br>Les données en mémoire peuvent être enregistrées sur disque, elles ne sont pas totalement perdues au redémarrage (Memcached n’a pas de persistance par défaut).</li>
</ol>



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



<p class="wp-block-paragraph">Au début, le projet Redis était financé, développé et maintenu par VMware.</p>



<p class="wp-block-paragraph">Nous allons illustrer l’usage de Redis avec un <strong>exemple simple de client Redis WinForm(C#)</strong>, un programme d’introduction montrant comment connecter C# à Redis.</p>



<ul class="wp-block-list">
<li>Définir des couples clé‑valeur</li>



<li>Récupérer une valeur à partir d’une clé<br></li>
</ul>



<p class="wp-block-paragraph"><strong>Comparaison rapide Redis vs Memcached</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Fonctionnalité</th><th>Redis</th><th>Memcached</th></tr></thead><tbody><tr><td>Types de données</td><td>5 structures de base</td><td>Chaîne uniquement</td></tr><tr><td>Persistance</td><td>Prend en charge RDB/AOF</td><td>Pas de persistance</td></tr><tr><td>Réplication maître‑esclave</td><td>Supporté</td><td>Pas de support natif</td></tr><tr><td>Éviction mémoire</td><td>Plusieurs politiques d’éviction</td><td>Éviction LRU</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Présentation</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/fr/2026/08/14/presentation-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
