[C#] Tutorial zur Verwendung von Redis unter Net Core

Artikelserie



Vorwort

Offizielles Tutorial: https://www.runoob.com/redis/redis-install.html
Remote DIctionary Server (Redis Remote Dictionary Server) ist ein von Salvatore Sanfilippo geschriebenes Schlüsselwertspeichersystem.
Redis ist eine Open-Source-Schlüsselwertdatenbank vom Protokolltyp, die in der ANSI-C-Sprache geschrieben ist, sich an das BSD-Protokoll hält, das Netzwerk unterstützt, speicherbasiert und persistent sein kann und APIs in mehreren Sprachen bereitstellt.
Er wird oft als Datenstrukturserver bezeichnet, da Werte Typen wie String, Map, List, Sets und Sorted Sets sein können.


1. Einführung in Redis

Redis und andere Schlüsselwert-Caching-Produkte weisen die folgenden drei Merkmale auf:

  • Redis unterstützt Datenpersistenz, wodurch Daten im Speicher auf der Festplatte verbleiben und bei einem Neustart erneut geladen werden können, um sie zu verwenden.
  • Redis unterstützt nicht nur einfache Daten vom Typ Schlüsselwert, sondern bietet auch die Speicherung von Datenstrukturen wie Liste, Satz, Zset und Hash.
  • Redis unterstützt die Datensicherung, also die Datensicherung im Master-Slave-Modus.

1.1 Vorteile von Redis

  • Extrem hohe Leistung – Redis kann mit einer Geschwindigkeit von 110.000 Mal/s lesen und mit einer Geschwindigkeit von 81.000 Mal/s schreiben.
  • Umfangreiche Datentypen – Redis unterstützt Datentypoperationen vom Typ Strings, Listen, Hashes, Mengen und geordnete Mengen für binäre Fälle.
  • Atomar – Alle Operationen von Redis sind atomar und Redis unterstützt auch die atomare Ausführung mehrerer Operationen, nachdem sie vollständig zusammengeführt wurden.
    Umfangreiche Funktionen – Redis unterstützt auch Publish/Subscribe, Benachrichtigungen, Schlüsselablauf und andere Funktionen.

1.2 Wie unterscheidet sich Redis von anderen Key-Value-Stores?

  • Redis verfügt über komplexere Datenstrukturen und bietet atomare Operationen für diese. Dies ist ein Evolutionspfad, der sich von anderen Datenbanken unterscheidet.
  • Die Datentypen von Redis basieren auf grundlegenden Datenstrukturen und sind für Programmierer transparent, ohne dass zusätzliche Abstraktionen erforderlich sind.
  • Redis wird im Speicher ausgeführt, kann jedoch auf der Festplatte gespeichert werden. Daher muss der Speicher abgewogen werden, wenn verschiedene Datensätze mit hoher Geschwindigkeit gelesen und geschrieben werden. Die Datenmenge sollte nicht größer als der Hardwarespeicher sein. Ein weiterer Vorteil von In-Memory-Datenbanken besteht darin, dass der Betrieb im Speicher im Vergleich zu denselben komplexen Datenstrukturen auf der Festplatte sehr einfach ist, sodass Redis viele Dinge mit hoher interner Komplexität erledigen kann. Außerdem sind sie im Hinblick auf das Festplattenformat kompakt und werden durch Anhängen generiert, da sie keinen Direktzugriff erfordern.

2. Redis-Installationsschritte

2.1 Download-Link

Download-Adresse: https://github.com/tporadowski/redis/releases
Hier laden wir das komprimierte Paket Redis-x64-xxx.zip nach D:\Program Files herunter. Benennen Sie den Ordner nach der Dekomprimierung in redis um.
Öffnen Sie den Ordner mit folgendem Inhalt:
Fügen Sie hier eine Bildbeschreibung ein

2.2 Installationstest

Öffnen Sie im aktuellen Verzeichnis ein cmd-Fenster und starten Sie Folgendes:

redis-server.exe redis.windows.conf

Wenn Sie es bequemer wünschen, können Sie den Redis-Pfad zur Systemumgebungsvariablen hinzufügen, sodass Sie den Pfad nicht erneut eingeben müssen. Die folgende redis.windows.conf kann weggelassen werden. Wenn sie weggelassen wird, wird die Standarddatei aktiviert . Nach der Eingabe wird die folgende Schnittstelle angezeigt:
Fügen Sie hier eine Bildbeschreibung ein
Öffnen Sie zu diesem Zeitpunkt ein weiteres cmd-Fenster. Schließen Sie das ursprüngliche Fenster nicht, da Sie sonst nicht auf den Server zugreifen können.
Wechseln Sie in das Redis-Verzeichnis und führen Sie Folgendes aus:

redis-cli.exe -h 127.0.0.1 -p 6379

Legen Sie Schlüssel-Wert-Paare fest:

setze myKey abc

Holen Sie sich die Schlüssel-Wert-Paare:

Holen Sie sich myKey

Fügen Sie hier eine Bildbeschreibung ein
Testerfolg

3. Ändern Sie das Kontopasswort in Redis

Dienst redis-server.exe starten redis.windows.conf
Client redis-cli.exe starten
Passwortkonfiguration anzeigen get requirepass
Passwortkonfiguration festlegen set requirepass system //Passwort auf System setzen
Exit beenden
und erneut anmelden – Client redis-cli.exe starten
Melden Sie sich erneut an und geben Sie das Passwort für das Authentifizierungssystem ein
Fügen Sie hier eine Bildbeschreibung ein

4. Redis ist als Windows-Dienst geschrieben

Es scheint sehr mühsam zu sein, das Cmd-Fenster jedes Mal zu starten. Jetzt schreiben wir es als Windows-Dienst, um den Start zu erleichtern.

redis-server --service-install redis.windows.conf
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

5. .net core - Verwenden Sie CSRedisCore, um Redis zu betreiben

ServiceStack.Redis ist eine kommerzielle Version, und die kostenlose Version weist Einschränkungen auf;
StackExchange.Redis ist eine kostenlose Version, es gibt jedoch Probleme mit dem Kernel, der auf .NETCore läuft, und häufige Zeitüberschreitungen, die vorerst nicht gelöst werden können;
CSRedis begann damit unterstützt .NETCore im Jahr 2016 und hat bis heute iteriert, um einen niedrigen Schwellenwert, eine hohe Leistung und eine erweiterte Partitionierung des .NETCore redis-cli SDK zu erreichen;
im Versionsupdate v3.0 wurden alle Methodennamen in CSRedis angepasst, um sie zu erstellen konsistent mit redis-cli. Wenn Sie mit redis-cli vertraut sind In Bezug auf Befehle kann CSRedis direkt verwendet werden, was den Lernaufwand erheblich reduziert.
Fügen Sie hier eine Bildbeschreibung ein
Erstellen Sie eine Instanziierung und Verbindung der RedisServer-Cache-Datenbank.

using CSRedis;
using YS.Common;

namespace YS.Core
{
    
    
    /// <summary>
    /// 创建RedisServer缓存型数据库
    /// 说明:需要读取配置文件,里面有连接字符串
    /// </summary>
    public static class RedisServer
    {
    
    
        public static CSRedisClient? Cache;
        public static CSRedisClient? Sequence;
        public static CSRedisClient? Session;

        public static void Initalize()
        {
    
    
            Cache = new CSRedisClient(AppSettings.Configuration["RedisServer:Cache"]);
            Sequence = new CSRedisClient(AppSettings.Configuration["RedisServer:Sequence"]);
            Session = new CSRedisClient(AppSettings.Configuration["RedisServer:Session"]);
        }
    }
}

RedisCache.cs-Hilfsklasse, die für die Ausführung von Vorgängen verantwortlich ist


using SqlSugar;
using System;
using System.Collections.Generic;

namespace YS.Core
{
    
    
    /// <summary>
    /// Redis操作方法
    /// 说明:添加键值对、添加json,以及修改删除等
    /// </summary>
    public class RedisCache : ICacheService
    {
    
    
        public void Add<V>(string key, V value)
        {
    
    
            RedisServer.Cache.Set(key, value);
        }

        public void Add<V>(string key, V value, int cacheDurationInSeconds)
        {
    
    
            RedisServer.Cache.Set(key, value, cacheDurationInSeconds);
        }

        public bool ContainsKey<V>(string key)
        {
    
    
            return RedisServer.Cache.Exists(key);
        }

        public V Get<V>(string key)
        {
    
    
            return RedisServer.Cache.Get<V>(key);
        }

        public IEnumerable<string> GetAllKey<V>()
        {
    
    
            return RedisServer.Cache.Keys("Cache:SqlSugarDataCache.*");
        }

        public V GetOrCreate<V>(string cacheKey, Func<V> create, int cacheDurationInSeconds = int.MaxValue)
        {
    
    
            if (ContainsKey<V>(cacheKey))
            {
    
    
                return Get<V>(cacheKey);
            }
            else
            {
    
    
                var result = create();
                Add(cacheKey, result, cacheDurationInSeconds);
                return result;
            }
        }

        public void Remove<V>(string key)
        {
    
    
            RedisServer.Cache.Del(key.Remove(0, 6));
        }
    }
}

Ich denke du magst

Origin blog.csdn.net/youcheng_ge/article/details/133072163
Empfohlen
Rangfolge