Lernen von Redis-Datentypen: Lassen Sie uns über String-Prinzipien sprechen
Dieser Artikel wird Ihnen helfen, den String im Redis-Datentyp zu verstehen und über das Speicherprinzip des String-Datentyps zu sprechen.
Redis ist eine Middleware, die häufig in der Arbeit verwendet wird. Sie unterstützt umfangreiche Datenstrukturen, verfügt über eine extrem starke Lese- und Schreibleistung und kann 100.000+ TPS erreichen.
Der heutige Artikel analysiert und fasst den String-Typ zusammen, der auch eine der am häufigsten verwendeten Datenstrukturen ist. Dieser Artikel wird basierend auf redis5.0 analysiert. [Verwandte Empfehlungen: Redis-Video-Tutorial
1. Grundlegende Verwendungset key value [EX seconds] [PX milliseconds] [NX|XX]
1. set ist der angegebene Name, value ist der Wert, der gespeichert werden muss2 Ablaufzeit Sekunden, PX Geben Sie die Ablaufzeit in Millisekunden an3. Die Einstellung ist nur erfolgreich, wenn der Schlüssel nicht vorhanden ist. Zusammenfassung: 5.0 unterstützt den Set-Befehl Geben Sie die Ablaufzeit und die Nichtexistenz an, das heißt, die verteilte Sperrfunktion kann über einen Befehl realisiert werden. In früheren Versionen müssen das Festlegen des Schlüssels und das Festlegen der Ablaufzeit in zwei Befehle unterteilt werden es schwieriger, die Atomizität sicherzustellen.
2. Nutzungsszenarien
2. SetnxDistributed lock
4. Incr globale ID
5 code>Incr current limit6. Bitoperation, Bitmap-Funktion, Online-Benutzerstatistik 0/1 Markierung 3. Unterstützte gespeicherte Datentypen 分布式锁
3、incr 计数器
4、Incr 全局id
5、Incr 限流
6、bit 操作,位图功能,在线用户统计 0/1标记
三、支持存储的数据类型
整型,字符型,float(单浮点型)
四、不同的编码类型
五、String存储原理
在Redis中,数据存储在一个RedisObject类中
typedef struct redisObject { //这个类型可以是string,也可以是hash,zset等等 unsigned type:4; unsigned encoding:4; //记录lru,lfu淘汰算法依赖的访问时间和访问频率 unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or * LFU data (least significant 8 bits frequency * and most significant 16 bits access time). */ //引用计数器 int refcount; //指向真实数据结构对象 void *ptr; } robj;
对于String,Redis自定义了一种简单动态字符串的数据结构来存储字符串数。
源码实现:多种数据结构,分别表示可以存储不同长度的字符串。
len:代表已经使用的长度
alloc:分配的总内存大小
flags:代表存储类型
buf[]:实际的数据
六、三种编码存储区别
1、embstr的RedisObject,SDS内存在一块,只要创建时分配一次内存
,销毁时释放一次内存
,查找方便
2、raw则RedisObject,SDS内存不在一块,需要创建时分配两次内存
,销毁时释放两次内存
3、embstr的结构,决定了他需要增加长度时,RedisObject,SDS都需要重新分配内存。因此embstr编码的数据是不能修改的,只读的
。
七、int,embstr编码什么时候转换成raw
1、int类型的数据不再是int类型,转成raw
2、长度大于2^63-1转成embstr
3、embstr字符超过44字节,转成raw
八、SDS数据结构的优点
1、二进制安全的
可以存储图片 整形,浮点型
2、String 的三种编码,充分利用内存,提高内存利用率
-
int
存储8个字节长整形 long ,2^63-1 -
Embstr
embstr格式的SDS simple Dynamic String 内存空间是连续的,只读的,只要执行修改就会转成raw -
Raw
,SDS,存储大于44个字节的字符串
3、不用担心内存溢出,sds具备自动扩容能力
4、获取字符串长度时间复杂度O(1)
,存储了len属性
5、通过空间预分配
和惰性空间释放
防止多次分配内存
6、判断是否结束使用len属性,可以包含'
Das obige ist der detaillierte Inhalt vonLernen von Redis-Datentypen: Lassen Sie uns über String-Prinzipien sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

RedisiscassifizedasanosqldatabaseBecauseituseSakey-valuedatamodelinSteAfThetitionalrelationalDatabasemodel

Redis verbessert die Anwendungsleistung und die Skalierbarkeit, indem sie Daten zwischengespeichert und verteilte Verriegelung und Datenpersistenz implementiert. 1) Cache -Daten: Verwenden Sie Redis, um häufig auf Daten zugegriffen, um die Geschwindigkeit des Datenzugriffs zu verbessern. 2) Verteilte Schloss: Verwenden Sie Redis, um verteilte Sperren zu implementieren, um die Sicherheit des Betriebs in einer verteilten Umgebung zu gewährleisten. 3) Datenpersistenz: Stellen Sie die Datensicherheit durch RDB- und AOF -Mechanismen sicher, um den Datenverlust zu verhindern.

Das Datenmodell und die Struktur von Redis umfassen fünf Haupttypen: 1. String: Verwendet, um Text oder binäre Daten zu speichern, und unterstützt Atomoperationen. 2. Liste: Bestellte Elementssammlung, geeignet für Warteschlangen und Stapel. 3. SET: Ungeordnete einzigartige Elemente, unterstützende Set -Operation. V. 5. Hash Table (Hash): Eine Sammlung von Schlüsselwertpaaren, die zum Speichern von Objekten geeignet sind.

Die Datenbankmethoden von Redis umfassen In-Memory-Datenbanken und Schlüsselwertspeicher. 1) Redis speichert Daten im Speicher und liest und schreibt schnell. 2) Es wird Schlüsselwertpaare verwendet, um Daten zu speichern, unterstützt komplexe Datenstrukturen wie Listen, Sammlungen, Hash-Tabellen und geordnete Sammlungen, die für Caches und NoSQL-Datenbanken geeignet sind.

Redis ist eine leistungsstarke Datenbanklösung, da sie eine schnelle Leistung, umfangreiche Datenstrukturen, hohe Verfügbarkeit und Skalierbarkeit, Persistenzfunktionen und eine breite Palette von Ökosystemunterstützung bietet. 1) Extrem schnelle Leistung: Die Daten von Redis werden im Speicher gespeichert und verfügt über extrem schnelle Lesen und Schreibgeschwindigkeiten, die für Anwendungen mit hoher Parallelität und niedriger Latenz geeignet sind. 2) Reiche Datenstruktur: Unterstützt mehrere Datentypen wie Listen, Sammlungen usw., die für eine Vielzahl von Szenarien geeignet sind. 3) hohe Verfügbarkeit und Skalierbarkeit: Unterstützt die Master-Slave-Replikation und den Clustermodus, um eine hohe Verfügbarkeit und horizontale Skalierbarkeit zu erzielen. 4) Persistenz und Datensicherheit: Die Datenpersistenz werden durch RDB und AOF erreicht, um die Integrität und Zuverlässigkeit der Daten zu gewährleisten. 5) Weites Ökosystem und Unterstützung der Gemeinschaft: mit einem riesigen Ökosystem und einer aktiven Gemeinschaft.

Zu den wichtigsten Merkmalen von Redis gehören Geschwindigkeit, Flexibilität und Reich Datenstrukturunterstützung. 1) Geschwindigkeit: Redis ist eine In-Memory-Datenbank, und Lese- und Schreibvorgänge sind fast augenblicklich und für Cache und Sitzungsverwaltung geeignet. 2) Flexibilität: Unterstützt mehrere Datenstrukturen wie Zeichenfolgen, Listen, Sammlungen usw., die für die komplexe Datenverarbeitung geeignet sind. 3) Unterstützung bei der Datenstruktur: Bietet Zeichenfolgen, Listen, Sammlungen, Hash -Tabellen usw., die für unterschiedliche Geschäftsanforderungen geeignet sind.

Die Kernfunktion von Redis ist ein Hochleistungs-In-Memory-Datenspeicher- und Verarbeitungssystem. 1) Hochgeschwindigkeitsdatenzugriff: Redis speichert Daten im Speicher und bietet Lese- und Schreibgeschwindigkeit auf Mikrosekunden. 2) Reiche Datenstruktur: Unterstützt Zeichenfolgen, Listen, Sammlungen usw. und passt an eine Vielzahl von Anwendungsszenarien. 3) Persistenz: Behalten Sie Daten an, um durch RDB und AOF zu diskutieren. 4) Abonnement veröffentlichen: Kann in Nachrichtenwarteschlangen oder Echtzeit-Kommunikationssystemen verwendet werden.

Redis unterstützt eine Vielzahl von Datenstrukturen, darunter: 1. String, geeignet zum Speichern von Einzelwertdaten; 2. Liste, geeignet für Warteschlangen und Stapel; 3.. SET, verwendet zum Speichern nicht duplikatischer Daten; V. 5. Hash -Tabelle, geeignet zum Speichern von Objekten oder strukturierten Daten.


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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen