So verwenden Sie den Redis-Cache-Server unter Windows
1. Redis-Server
Laden Sie zuerst den Redis-Server herunter, klicken Sie, um die .msi-Version herunterzuladen, doppelklicken Sie, um den Redis-Server zu installieren, und er wird installiert als Dienst. Das System startet zusammen:
Das erste, was Sie nach der Installation des Redis-Servers tun müssen, ist, ein Passwort festzulegen und das Installationsverzeichnis einzugeben: C:ProgrammeRedis – Finden Sie Konfigurationsdatei: redis.windows-service .conf – Suchen Sie: # requirepass foobared – Geben Sie ein, führen Sie einen Zeilenvorschub aus und fügen Sie Folgendes hinzu: requirepass Schreiben Sie hier Ihr neues Passwort (schreiben Sie es in die oberste Zeile, lassen Sie kein Leerzeichen davor) – Starten Sie Redis neu Dienst im Dienst, oder starten Sie den Computer neu
Nein Die Nachteile des Festlegens von Passwörtern können verstanden werden, wenn man sich ansieht, was diesem Kerl von Ctrip passiert ist: Erinnern Sie sich an einen Vorfall, bei dem Redis angegriffen wurde
2. Redis-Client (Befehlszeilen- und Visualisierungstool RDM)
Befehlszeilendemonstration: Redis-Client starten, Redis-Server lesen und schreiben
Erklärung des obigen Befehls:
cd C: ProgrammeRedis: Der Befehl cd gibt das Redis-Installationsverzeichnis ein, was einem Doppelklick zum Aufrufen des Redis-Installationsverzeichnisses im Windows-System entspricht
redis-cli.exe: Öffnet das Redis-Cli-Client-Programm, was einem Doppelklick zum Ausführen einer Exe im Windows-System entspricht (nach der Installation des oben genannten Redis-Serverprogramms ist ein Client-Programm erforderlich). Stellen Sie eine Verbindung zum Server her. Um eine Verbindung zum lokalen Redis-Server herzustellen, geben Sie diesen Befehl direkt ein. Um eine Verbindung zum Remote-Server herzustellen, müssen Sie beispielsweise die IP und den Port hinzufügen: redis-cli.exe -h 111.11 .11.111 -p 6379 )
Schlüssel *: Alle Schlüssel-Wert-Paare anzeigen (Wenn der Redis-Server ein Kennwort festgelegt hat, meldet dieser Befehl einen Fehler. Sie müssen zuerst das Kennwort eingeben. Führen Sie diesen Befehl aus: auth your password)
set blog oppoic.cnblogs.com: Legen Sie ein Schlüssel-Wert-Paar fest, der Schlüssel ist: blog, der Wert ist: oppoic.cnblogs.com (gespeichert im Verzeichnis: set Verzeichnisname: Schlüsselwert)
Blog abrufen: Den dem Schlüsselblog entsprechenden Wert abrufen
Schlüssel *: Alle Schlüssel-Wert-Paare anzeigen
Andere häufig verwendete Befehle:
config get dir: Ruft das Redis-Installationsverzeichnis ab
ping: Gibt PONG zurück, um anzuzeigen, dass der Redis-Server normal ist
redis-cli.exe: Geben Sie die erste Datenbank ein (Standard). ), Redis verfügt über insgesamt 16 Bibliotheken von 0 bis 15. Geben Sie die dritte Bibliothek ein: redis-cli -n 2 (bereits eingegeben, wählen Sie 0 bis 15 aus, um nach Belieben zu wechseln)
Beenden: Beenden Sie das Redis-Programm
exit: Verlässt das DOS-Fenster
flushdb: Alle Schlüssel in der aktuell ausgewählten Datenbank löschen
flushall: Datenbanken in allen Datenbanken löschen
Weitere Befehle: https ://redis.io/commands
Zu diesem Zeitpunkt wurde ein Redis-Cache-Server eingerichtet, der auf dem lokalen Computer ausgeführt wird und gelesen und geschrieben werden kann. Allerdings ist die Befehlszeile offensichtlich nicht für unerfahrene Benutzer geeignet. Das Visualisierungstool finden Sie hier: Redis Desktop Manager (https://redisdesktop.com/download)
Der Baum Auf der linken Seite wird angezeigt, dass bereits vorhanden sind. Sobald die Verbindung hergestellt ist, klicken Sie unten auf „Mit Redis-Server verbinden“, um eine weitere Verbindung hinzuzufügen:
Name: Verbindungsname, nehmen Sie ihn beiläufig auf
Host: Hostadresse, Diese Maschine ist 127.0.0.1, geben Sie die entsprechende IP aus der Ferne ein
Port: Port, der Standardport des Redis-Servers ist 6379
Auth: Passwort, geben Sie es ein, wenn es festgelegt ist, lassen Sie es leer Wenn es nicht festgelegt ist
Sie können es sehen, nachdem Sie eine Verbindung zum Redis-Server hergestellt haben. Der Standardwert beträgt 16 Bibliotheken (die Konfigurationsdatei kann geändert werden) und der Index beginnt bei 0. Eine übliche Verwendung besteht darin, ein Projekt und eine Bibliothek zu haben, und verschiedene Funktionsmodule unter dem Projekt werden in verschiedenen Verzeichnissen unter dieser Bibliothek gespeichert.
Es versteht sich von selbst, dass der Vorgang nach der Verwendung des Visualisierungstools darin besteht, zu doppelklicken, mit der rechten Maustaste zu klicken und zu löschen. . . Jeder, der sich mit dem Windows-System auskennt, wird dieses Tool verwenden. Im Vergleich zur Befehlszeile ist Redis Desktop Manager ein benutzerfreundlicheres visuelles Tool und es ist auch bequemer, die Daten auf dem Remote-Server zu debuggen.
Hinweis: Um eine Verbindung zum Remote-Server herzustellen, müssen Sie zum Redis-Installationsverzeichnis auf dem Server gehen, die Datei redis.windows-service.conf suchen und Bind 127.0.0.1 finden , kommentieren Sie es mit „#“ voran und klicken Sie dann mit der rechten Maustaste auf den Dienst, um den Redis-Dienst neu zu starten, oder starten Sie das Windows-System neu
3. C#-Betrieb des Redis-Servers
Die oben genannten Befehlszeilen und visuellen Tools zum Betrieb des Redis-Servers müssen StackExchange.Redis verwenden (https://github.com/StackExchange/StackExchange). Redis), um es einheitlich aufzurufen, ist eine RedisHelper-Hilfsklasse gekapselt:
using Newtonsoft.Json; using StackExchange.Redis; using System; using System.ComponentModel; using System.Configuration; using System.Reflection; using System.Text; namespace redis_Demo { /// <summary> /// Redis 帮助类 /// </summary> public static class RedisHelper { private static string _conn = ConfigurationManager.AppSettings["redis_connection_string"] ?? "127.0.0.1:6379"; private static string _pwd = ConfigurationManager.AppSettings["redis_connection_pwd"] ?? "123456"; static ConnectionMultiplexer _redis; static readonly object _locker = new object(); #region 单例模式 public static ConnectionMultiplexer Manager { get { if (_redis == null) { lock (_locker) { if (_redis != null) return _redis; _redis = GetManager(); return _redis; } } return _redis; } } private static ConnectionMultiplexer GetManager(string connectionString = null) { if (string.IsNullOrEmpty(connectionString)) { connectionString = _conn; } var options = ConfigurationOptions.Parse(connectionString); options.Password = _pwd; return ConnectionMultiplexer.Connect(options); } #endregion /// <summary> /// 添加 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="value">值</param> /// <param name="expireMinutes">过期时间,单位:分钟。默认600分钟</param> /// <param name="db">库,默认第一个。0~15共16个库</param> /// <returns></returns> public static bool StringSet(CacheFolderEnum folder, string key, string value, int expireMinutes = 600, int db = -1) { string fd = GetDescription(folder); return Manager.GetDatabase(db).StringSet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, value, TimeSpan.FromMinutes(expireMinutes)); } /// <summary> /// 获取 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="db">库,默认第一个。0~15共16个库</param> /// <returns></returns> public static string StringGet(CacheFolderEnum folder, string key, int db = -1) { try { string fd = GetDescription(folder); return Manager.GetDatabase(db).StringGet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key); } catch (Exception) { return null; } } /// <summary> /// 删除 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="db">库,默认第一个。0~15共16个库</param> /// <returns></returns> public static bool StringRemove(CacheFolderEnum folder, string key, int db = -1) { try { string fd = GetDescription(folder); return Manager.GetDatabase(db).KeyDelete(string.IsNullOrEmpty(fd) ? key : fd + ":" + key); } catch (Exception) { return false; } } /// <summary> /// 是否存在 /// </summary> /// <param name="key">键</param> /// <param name="db">库,默认第一个。0~15共16个库</param> public static bool KeyExists(CacheFolderEnum folder, string key, int db = -1) { try { string fd = GetDescription(folder); return Manager.GetDatabase(db).KeyExists(string.IsNullOrEmpty(fd) ? key : fd + ":" + key); } catch (Exception) { return false; } } /// <summary> /// 延期 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="min">延长时间,单位:分钟,默认600分钟</param> /// <param name="db">库,默认第一个。0~15共16个库</param> public static bool AddExpire(CacheFolderEnum folder, string key, int min = 600, int db = -1) { try { string fd = GetDescription(folder); return Manager.GetDatabase(db).KeyExpire(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, DateTime.Now.AddMinutes(min)); } catch (Exception) { return false; } } /// <summary> /// 添加实体 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="t">实体</param> /// <param name="ts">延长时间,单位:分钟,默认600分钟</param> /// <param name="db">库,默认第一个。0~15共16个库</param> public static bool Set<T>(CacheFolderEnum folder, string key, T t, int expireMinutes = 600, int db = -1) { string fd = GetDescription(folder); var str = JsonConvert.SerializeObject(t); return Manager.GetDatabase(db).StringSet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key, str, TimeSpan.FromMinutes(expireMinutes)); } /// <summary> /// 获取实体 /// </summary> /// <param name="folder">目录</param> /// <param name="key">键</param> /// <param name="db">库,默认第一个。0~15共16个库</param> public static T Get<T>(CacheFolderEnum folder, string key, int db = -1) where T : class { string fd = GetDescription(folder); var strValue = Manager.GetDatabase(db).StringGet(string.IsNullOrEmpty(fd) ? key : fd + ":" + key); return string.IsNullOrEmpty(strValue) ? null : JsonConvert.DeserializeObject<T>(strValue); } /// <summary> /// 获得枚举的Description /// </summary> /// <param name="value">枚举值</param> /// <param name="nameInstead">当枚举值没有定义DescriptionAttribute,是否使用枚举名代替,默认是使用</param> /// <returns>枚举的Description</returns> private static string GetDescription(this Enum value, Boolean nameInstead = true) { Type type = value.GetType(); string name = Enum.GetName(type, value); if (name == null) { return null; } FieldInfo field = type.GetField(name); DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; if (attribute == null && nameInstead == true) { return name; } return attribute == null ? null : attribute.Description; } } }
Fügen Sie dem fd1-Verzeichnis der ersten Bibliothek des Redis-Servers einen Datensatz mit dem Schlüsselnamen und dem Wert wangjie hinzu :
RedisHelper.StringSet(CacheFolderEnum.Folder1, "name", "wangjie");
Diesen Datensatz abrufen:
string key = RedisHelper.StringGet(CacheFolderEnum.Folder1, "name"); Console.WriteLine("键为name的记录对应的值:" + key);
Diesen Datensatz löschen:
bool result = RedisHelper.StringRemove(CacheFolderEnum.Folder1, "name"); if (result) { Console.WriteLine("键为name的记录删除成功"); } else { Console.WriteLine("键为name的记录删除失败"); }
Überprüfen Sie, ob dieser Datensatz vorhanden ist:
bool ifExist = RedisHelper.KeyExists(CacheFolderEnum.Folder1, "name"); if (ifExist) { Console.WriteLine("键为name的记录存在"); } else { Console.WriteLine("键为name的记录不存在"); }
Fragen Sie im fd2-Verzeichnis der zweiten Bibliothek des Redis-Servers einen Datensatz mit dem Schlüssel sd1 und dem Wert eines Objekts:
Student student = new Student() { Id = 1, Name = "张三", Class = "三年二班" }; RedisHelper.Set<Student>(CacheFolderEnum.Folder2, "sd1", student, 10, 1);
Holen Sie sich dieses Objekt:
Student sdGet = RedisHelper.Get<Student>(CacheFolderEnum.Folder2, "sd1", 1); if (sdGet != null) { Console.WriteLine("Id:" + sdGet.Id + " Name:" + sdGet.Name + " Class:" + sdGet.Class); } else { Console.WriteLine("找不到键为sd1的记录"); }
Quellcode: (http://files.cnblogs.com/files/oppoic/redis_Demo.zip)
Die Umgebung ist VS 2013. Wenn es nicht ausgeführt werden kann, kopieren Sie den Code in cs, kompilieren und ausführen es selbst
4. Andere
Der von MSOpenTech entwickelte Redis-Cache-Server wird nach dem Schreiben mit einem Neustart des Computers geliefert Im Allgemeinen muss beim Schreiben des Schlüssel-Wert-Paares die Ablaufzeit festgelegt werden, andernfalls bleibt der belegte Speicher bestehen. Die Redis-Speichermethode verfügt nicht nur über Schlüssel, die Zeichenfolgen entsprechen, sondern auch für Listen, HashTables usw. Natürlich gibt es unter Linux immer noch fortgeschrittenere Verwendungsmöglichkeiten von Redis.
Weitere Artikel zur Verwendung des Redis-Cache-Servers unter Windows finden Sie auf der chinesischen PHP-Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Auf CentOS -Systemen können Sie die Ausführungszeit von LuA -Skripten einschränken, indem Sie Redis -Konfigurationsdateien ändern oder Befehle mit Redis verwenden, um zu verhindern, dass bösartige Skripte zu viele Ressourcen konsumieren. Methode 1: Ändern Sie die Redis -Konfigurationsdatei und suchen Sie die Redis -Konfigurationsdatei: Die Redis -Konfigurationsdatei befindet sich normalerweise in /etc/redis/redis.conf. Konfigurationsdatei bearbeiten: Öffnen Sie die Konfigurationsdatei mit einem Texteditor (z. B. VI oder Nano): Sudovi/etc/redis/redis.conf Setzen Sie die LUA -Skriptausführungszeit.

Laden Sie das Quellcodepaket von der offiziellen Redis -Quelle herunter, um es zu kompilieren und zu installieren, um die neueste und stabile Version zu gewährleisten, und kann auf personalisierte Weise angepasst werden. Die spezifischen Schritte sind wie folgt: Aktualisieren Sie die Liste der Softwarepakets und erstellen

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

Die Gründe für die Installation von VS -Code -Erweiterungen können sein: Netzwerkinstabilität, unzureichende Berechtigungen, Systemkompatibilitätsprobleme, VS -Code -Version ist zu alt, Antiviren -Software oder Firewall -Interferenz. Durch Überprüfen von Netzwerkverbindungen, Berechtigungen, Protokolldateien, Aktualisierungen von VS -Code, Deaktivieren von Sicherheitssoftware und Neustart von Code oder Computern können Sie Probleme schrittweise beheben und beheben.

VS -Code ist auf Mac verfügbar. Es verfügt über leistungsstarke Erweiterungen, GIT -Integration, Terminal und Debugger und bietet auch eine Fülle von Setup -Optionen. Für besonders große Projekte oder hoch berufliche Entwicklung kann VS -Code jedoch Leistung oder funktionale Einschränkungen aufweisen.

VS Code ist der vollständige Name Visual Studio Code, der eine kostenlose und open-Source-plattformübergreifende Code-Editor und Entwicklungsumgebung von Microsoft ist. Es unterstützt eine breite Palette von Programmiersprachen und bietet Syntax -Hervorhebung, automatische Codebettel, Code -Snippets und intelligente Eingabeaufforderungen zur Verbesserung der Entwicklungseffizienz. Durch ein reiches Erweiterungs -Ökosystem können Benutzer bestimmte Bedürfnisse und Sprachen wie Debugger, Code -Formatierungs -Tools und Git -Integrationen erweitern. VS -Code enthält auch einen intuitiven Debugger, mit dem Fehler in Ihrem Code schnell gefunden und behoben werden können.

Aktivieren Sie Redis langsame Abfrageprotokolle im CentOS -System, um die Leistungsdiagnoseeffizienz zu verbessern. In den folgenden Schritten führen Sie die Konfiguration durch: Schritt 1: Suchen und bearbeiten Sie die Redis -Konfigurationsdatei zuerst und suchen Sie die Redis -Konfigurationsdatei, die sich normalerweise in /etc/redis/redis.conf befindet. Öffnen Sie die Konfigurationsdatei mit dem folgenden Befehl: Sudovi/etc/redis/redis.conf Schritt 2: Passen Sie die Langsame-Abfrage-Protokollparameter in der Konfigurationsdatei an, suchen Sie die folgenden Parameter: #Slow Query-Schwellenwert (MS) Slow-Log-Slow-Than10000 #Maximum der Einträge für langsame Query-Log-Logog-Logog-Len-Len-Len

Das häufigste Problem "kann nicht ausführen" von der Misskonfiguration des Python -Interpreter -Pfades beruht. Zu den Lösungen gehören: Bestätigung der Python -Installation, Konfigurieren von VS -Code und Verwendung einer virtuellen Umgebung. Darüber hinaus gibt es effiziente Debugging -Techniken und Best Practices wie Breakpoint -Debugging, variable Überwachung, Protokollausgabe und Codeformatierung, z. B. das Isolieren von Abhängigkeiten mithilfe virtueller Umgebungen, die Verfolgung der Codeausführung mithilfe von Haltepunkten und die Verfolgung von Änderungen der Variablen in Echtzeit mithilfe der Überwachung der Ausdrücke usw., die den Effizienz der Entwicklung erheblich verbessern können.
