====== std.db.redis ====== Vollständiger Redis-Client mit Unterstützung aller wichtigen Datenstrukturen: Strings, Hashes, Listen, Sets und Sorted Sets. Redis ist ein In-Memory-Datenspeicher, der als Cache, Session-Store, Message-Queue, Echtzeit-Leaderboard oder Pub/Sub-Broker eingesetzt wird. Die Unit kommuniziert direkt über das RESP-Protokoll (REdis Serialization Protocol) per TCP. Unterstützt werden TTL-Verwaltung (''EXPIRE'', ''TTL''), atomare Operationen (''INCR''/''DECR''), Hash-Felder, Listen-Operationen (Queues/Stacks), mengentheoretische Operationen (Schnittmenge, Vereinigung) und Sorted Sets für rankingbasierte Szenarien. import std.db.redis; var conn: RedisConn := RedisConnect("127.0.0.1", 6379); RedisSet(conn, "session:42", "user_data_json"); RedisExpire(conn, "session:42", 3600); var val: pchar := RedisGet(conn, "session:42"); RedisClose(conn); ---- ===== Imports ===== * ''std.net.types'' * ''std.net.syscalls'' * ''std.string'' ---- ===== Typen ===== ==== RedisConn (struct) ==== ^ Feld ^ Typ ^ | ''fd'' | ''int64'' | | ''host'' | ''pchar'' | | ''port'' | ''int64'' | | ''timeout_ms'' | ''int64'' | | ''buf_len'' | ''int64'' | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''REDIS_REPLY_NIL'' | ''int64'' | ''0'' | pub | | ''REDIS_REPLY_ERROR'' | ''int64'' | ''1'' | pub | | ''REDIS_REPLY_STATUS'' | ''int64'' | ''2'' | pub | | ''REDIS_REPLY_INTEGER'' | ''int64'' | ''3'' | pub | | ''REDIS_REPLY_BULK'' | ''int64'' | ''4'' | pub | | ''REDIS_REPLY_ARRAY'' | ''int64'' | ''5'' | pub | ==== RedisReply (struct) ==== ^ Feld ^ Typ ^ | ''kind'' | ''int64'' | | ''int_val'' | ''int64'' | | ''str_val'' | ''pchar'' | | ''str_len'' | ''int64'' | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''redisParseInt(s: int64): int64'' | pub | Parst Integer aus RESP-Antwort-String | | ''appendDec(buf: int64, pos: int64, val: int64): int64'' | pub | Schreibt Dezimalzahl in Anfragepuffer | | ''appendCRLF(buf: int64, pos: int64): int64'' | priv | Fügt CRLF-Sequenz in Puffer ein | | ''appendBulk(buf: int64, pos: int64, s: pchar): int64'' | pub | Fügt Bulk-String ins RESP-Request-Format ein | | ''parseResp(conn: RedisConn, n: int64): RedisReply'' | pub | Parst RESP-Antwort vom Server | | ''sendRaw(conn: RedisConn, reqbuf: int64, req_len: int64): RedisReply'' | pub | Sendet rohes RESP-Kommando an Redis | | ''RedisConnect(host: pchar, port: int64): RedisConn'' | pub | Öffnet Verbindung zum Redis-Server | | ''RedisClose(conn: RedisConn): void'' | pub | Schließt Redis-Verbindung | | ''RedisPing(conn: RedisConn): bool'' | pub | Testet Redis-Verbindung mit PING | | ''RedisSet(conn: RedisConn, key: pchar, value: pchar): RedisReply'' | pub | Setzt String-Wert für Schlüssel | | ''RedisGet(conn: RedisConn, key: pchar): RedisReply'' | pub | Liest String-Wert eines Schlüssels | | ''RedisDel(conn: RedisConn, key: pchar): int64'' | pub | Löscht einen Schlüssel | | ''RedisExists(conn: RedisConn, key: pchar): int64'' | pub | Prüft ob Schlüssel existiert | | ''RedisLPush(conn: RedisConn, key: pchar, value: pchar): RedisReply'' | pub | Fügt Element am Listenanfang ein | | ''RedisRPush(conn: RedisConn, key: pchar, value: pchar): RedisReply'' | pub | Fügt Element am Listenende ein | | ''RedisLPop(conn: RedisConn, key: pchar): RedisReply'' | pub | Entfernt und gibt erstes Listenelement zurück | | ''RedisRPop(conn: RedisConn, key: pchar): RedisReply'' | pub | Entfernt und gibt letztes Listenelement zurück | | ''RedisLRange(conn: RedisConn, key: pchar, start: int64, stop: int64): RedisReply'' | pub | Liest Listenbereich als Array | | ''RedisLLen(conn: RedisConn, key: pchar): int64'' | pub | Gibt Länge einer Liste zurück | | ''RedisHSet(conn: RedisConn, key: pchar, field: pchar, value: pchar): RedisReply'' | pub | Setzt Hash-Feldwert | | ''RedisHGet(conn: RedisConn, key: pchar, field: pchar): RedisReply'' | pub | Liest Hash-Feldwert | | ''RedisHGetAll(conn: RedisConn, key: pchar): RedisReply'' | pub | Liest alle Hash-Felder und Werte | | ''RedisHDel(conn: RedisConn, key: pchar, field: pchar): int64'' | pub | Löscht Hash-Feld | | ''RedisHIncrBy(conn: RedisConn, key: pchar, field: pchar, increment: int64): RedisReply'' | pub | Inkrementiert Hash-Feld um Integer | | ''RedisSAdd(conn: RedisConn, key: pchar, member: pchar): RedisReply'' | pub | Fügt Member zu Set hinzu | | ''RedisSRem(conn: RedisConn, key: pchar, member: pchar): RedisReply'' | pub | Entfernt Member aus Set | | ''RedisSIsMember(conn: RedisConn, key: pchar, member: pchar): int64'' | pub | Prüft ob Member im Set enthalten | | ''RedisSInter(conn: RedisConn, key1: pchar, key2: pchar): RedisReply'' | pub | Schnittmenge zweier Sets | | ''RedisSUnion(conn: RedisConn, key1: pchar, key2: pchar): RedisReply'' | pub | Vereinigung zweier Sets | | ''RedisZAdd(conn: RedisConn, key: pchar, score: int64, member: pchar): RedisReply'' | pub | Fügt Member mit Score zu Sorted Set hinzu | | ''RedisZRange(conn: RedisConn, key: pchar, start: int64, stop: int64): RedisReply'' | pub | Liest Sorted-Set-Bereich aufsteigend | | ''RedisZRevRank(conn: RedisConn, key: pchar, member: pchar): int64'' | pub | Gibt absteigenden Rang im Sorted Set zurück | | ''RedisExpire(conn: RedisConn, key: pchar, seconds: int64): int64'' | pub | Setzt TTL in Sekunden | | ''RedisPExpire(conn: RedisConn, key: pchar, ms: int64): int64'' | pub | Setzt TTL in Millisekunden | | ''RedisTTL(conn: RedisConn, key: pchar): int64'' | pub | Liest verbleibende TTL in Sekunden | | ''RedisUnlink(conn: RedisConn, key: pchar): int64'' | pub | Löscht Schlüssel asynchron | | ''RedisIncr(conn: RedisConn, key: pchar): RedisReply'' | pub | Inkrementiert Integer-Wert um 1 | | ''RedisDecr(conn: RedisConn, key: pchar): RedisReply'' | pub | Dekrementiert Integer-Wert um 1 | | ''RedisSCard(conn: RedisConn, key: pchar): int64'' | pub | Gibt Anzahl Elemente im Set zurück | | ''RedisZScore(conn: RedisConn, key: pchar, member: pchar): RedisReply'' | pub | Gibt Score eines Sorted-Set-Members zurück | | ''RedisSMembers(conn: RedisConn, key: pchar): RedisReply'' | pub | Gibt alle Members eines Sets zurück |