\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{deudaz15} \pdfinfo{ /Title (dbi-redis-basiccommands.pdf) /Creator (Cheatography) /Author (deudaz15) /Subject (DBI\_Redis\_BasicCommands Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{DBI\_Redis\_BasicCommands Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{deudaz15} via \textcolor{DarkBackground}{\uline{cheatography.com/110532/cs/25125/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}deudaz15 \\ \uline{cheatography.com/deudaz15} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 9th November, 2020.\\ Updated 9th November, 2020.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{SET}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{SET \textless{}key\textgreater{} \textless{}value\textgreater{} {[}EX|FX|NX|XX{]}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Sowie der Schlüssel als auch der Wert bilden je eine beliebige Zeichenkette. Sind Leerzeichen enthalten, müssen Hochkomma verwendet werden, wobei nicht zwischen " und ' unterschieden wird. \newline EX -\textgreater{} Anzahl der Sekunden die der Datensatz (DS) erhalten bleibt \newline PX -\textgreater{} Anzahl der Millisekunden die der DS erhalten bleibt \newline NX -\textgreater{} Setzt DS nur, wenn der Schlüssel noch nicht existiert \newline XX -\textgreater{} Setzt DS nur, wenn der Schlüssel schon existiert} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{GET}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{GET \textless{}key\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Der Schlüssel ist wieder eine beliebige Zeichenkette, kann dieser nicht gefunden werden, wird die spezielle Kette 'nil' zurückgegeben.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{EXISTS}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{EXISTS \textless{}key\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Überprüft, ob der angegebene Schlüssel in der DB vorhanden ist. \newline Gibt 1 für WAHR und 0 für FALSCH zurück.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Hash}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{HSET \textless{}hashname\textgreater{} \textless{}key\textgreater{} \textless{}value\textgreater{} \newline % Row Count 1 (+ 1) HGETALL \textless{}hashname\textgreater{} \newline % Row Count 2 (+ 1) HMSET \textless{}hashname\textgreater{} \textless{}key\textgreater{} \textless{}value\textgreater{} \textless{}key\textgreater{} \textless{}value\textgreater{} {[}\textless{}key\textgreater{} \textless{}value\textgreater{} ...{]} \newline % Row Count 4 (+ 2) HGET \textless{}hashname\textgreater{} \textless{}key\textgreater{} \newline % Row Count 5 (+ 1) HINCRBY \textless{}hashset\textgreater{} \textless{}key\textgreater{} \textless{}count\textgreater{} \newline % Row Count 6 (+ 1) HDEL \textless{}hashset\textgreater{} \textless{}key\textgreater{} \newline % Row Count 7 (+ 1) HDECRBY \textless{}hashset\textgreater{} \textless{}key\textgreater{} \textless{}count\textgreater{} \newline % Row Count 8 (+ 1) Schlüssel und Wert sind beide Zeichenketten.% Row Count 9 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{DEL}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{DEL \textless{}key\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Ähnlich wie EXISTS, nur dass dabei der DS gel{\"o}scht wird, wenn er gefunden wird. \newline Rückgabewerte sind dieselben.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{INCR | INCRBY}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{INCR \textless{}key\textgreater{} \newline INCRBY \textless{}key\textgreater{} \textless{}count\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Erh{\"o}ht den Wert des Schlüssels um eins, oder im Fall von INCRBY um die beigefügte Zahl. \newline Ist der Wert keine ganzzahlige Zahl, wird ein Fehler ausgegeben. \newline Existiert der Schlüssel noch nicht, wird er neu erstellt. Bei INCR w{\"a}re der Wert dann automatisch 1. \newline {\bf{8ung: Stellt eine {\emph{atomic operation}} dar -\textgreater{} thread-safe}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Lists}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{RPUSH \textless{}key\textgreater{} \textless{}value\textgreater{} {[}\textless{}value\textgreater{} ...{]} \newline % Row Count 1 (+ 1) LPUSH \textless{}key\textgreater{} \textless{}value\textgreater{} {[}\textless{}value\textgreater{} ...{]} \newline % Row Count 2 (+ 1) LLEN \textless{}key\textgreater{} \newline % Row Count 3 (+ 1) LRANGE \textless{}key\textgreater{} \textless{}start\textgreater{} \textless{}end\textgreater{} \newline % Row Count 4 (+ 1) LPOP \textless{}key\textgreater{} \newline % Row Count 5 (+ 1) RPOP \textless{}key\textgreater{} \newline % Row Count 6 (+ 1) RPUSH fügt den Wert (od. die Werte) am Ende der Liste ein. \newline % Row Count 8 (+ 2) LPUSH fügt den Wert (od. die Werte) am Anfang der Liste ein. \newline % Row Count 10 (+ 2) LLEN gibt die L{\"a}nge der Liste zurück. (Anzahl der Werte) \newline % Row Count 12 (+ 2) LRANGE gibt alle Werte zwischen \textless{}start\textgreater{} und \textless{}end\textgreater{} zurück. \textless{}end\textgreater{} kann auch -1 und -2 sein, wobei -1 für das Ende der Liste und -2 für den vorletzten Eintrag in der Liste steht. \newline % Row Count 16 (+ 4) LPOP entfernt den ersten Eintrag der Liste und gibt dessen Wert zurück. \newline % Row Count 18 (+ 2) RPOP entfernt den letzten Eintrag der Liste und gibt dessen Wert zurück.% Row Count 20 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{EXPIRE | TTL | PEXPIRE | PTTL}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{EXPIRE \textless{}key\textgreater{} \textless{}seconds\textgreater{} \newline TTL \textless{}key\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{EXPIRE setzt die Sekunden, die eine Schlüssel existieren darf, l{\"a}uft die Zeit ab, wird er (der gesamte DS) gel{\"o}scht. \newline TTL gibt die Sekunden zurück, welche ein Schlüssel noch existiert, oder -1 falls er kein "Ablaufdatum" besitzt, oder -2 falls der Schlüssel nicht existiert. \newline PEXPIRE und PTTL haben die selbe Funktionalit{\"a}t, nur mit Millisekunden.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{PERSIST}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{PERSIST \textless{}key\textgreater{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Entfernt das Ablaufdatum für einen DS.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Set}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{SADD \textless{}key\textgreater{} \textless{}value\textgreater{} {[}\textless{}value\textgreater{} ...{]} \newline % Row Count 1 (+ 1) SREM \textless{}key\textgreater{} \textless{}value\textgreater{} \newline % Row Count 2 (+ 1) SISMEMBER \textless{}key\textgreater{} \textless{}value\textgreater{} \newline % Row Count 3 (+ 1) SMEMBERS \textless{}key\textgreater{} \newline % Row Count 4 (+ 1) SUNION \textless{}key\textgreater{} \textless{}key\textgreater{} \newline % Row Count 5 (+ 1) SPOP \textless{}key\textgreater{} \textless{}count\textgreater{} \newline % Row Count 6 (+ 1) Werte k{\"o}nnen nur einmal vorkommen. \newline % Row Count 7 (+ 1) SISMEMBER gibt 1 zurück, wenn der Wert enthalten ist und 0 wenn nicht. \newline % Row Count 9 (+ 2) SMEMBERS gibt alle Elemente des Sets zurück. \newline % Row Count 10 (+ 1) SUNION kombiniert zwei Sets und gibt deren Elemente zusammen zurück. \newline % Row Count 12 (+ 2) SPOP eliminiert \textless{}count\textgreater{} Elemente vom Set und gibt diese zurück.% Row Count 14 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Sorted Set}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Ähnlich wie Set \newline % Row Count 1 (+ 1) statt SADD \textless{}key\textgreater{} \textless{}value\textgreater{} -\textgreater{} ZADD \textless{}key\textgreater{} \textless{}score\textgreater{} \textless{}value\textgreater{} \newline % Row Count 3 (+ 2) Mittels Score wird das Set geordnet.% Row Count 4 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}