<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Redict</title>
    <link>https://redict.io/</link>
    <description>Recent content on Redict</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 08 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://redict.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Redis benchmark</title>
      <link>https://redict.io/docs/usage/optimization/benchmarks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/optimization/benchmarks/</guid>
      <description>&lt;p&gt;Redis includes the &lt;code&gt;redis-benchmark&lt;/code&gt; utility that simulates running commands done&#xA;by N clients while at the same time sending M total queries. The utility provides&#xA;a default set of tests, or you can supply a custom set of tests.&lt;/p&gt;&#xA;&lt;p&gt;The following options are supported:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Usage: redis-benchmark [-h &amp;lt;host&amp;gt;] [-p &amp;lt;port&amp;gt;] [-c &amp;lt;clients&amp;gt;] [-n &amp;lt;requests]&amp;gt; [-k &amp;lt;boolean&amp;gt;]&#xA;&#xA; -h &amp;lt;hostname&amp;gt;      Server hostname (default 127.0.0.1)&#xA; -p &amp;lt;port&amp;gt;          Server port (default 6379)&#xA; -s &amp;lt;socket&amp;gt;        Server socket (overrides host and port)&#xA; -a &amp;lt;password&amp;gt;      Password for Redis Auth&#xA; -c &amp;lt;clients&amp;gt;       Number of parallel connections (default 50)&#xA; -n &amp;lt;requests&amp;gt;      Total number of requests (default 100000)&#xA; -d &amp;lt;size&amp;gt;          Data size of SET/GET value in bytes (default 3)&#xA; --dbnum &amp;lt;db&amp;gt;       SELECT the specified db number (default 0)&#xA; -k &amp;lt;boolean&amp;gt;       1=keep alive 0=reconnect (default 1)&#xA; -r &amp;lt;keyspacelen&amp;gt;   Use random keys for SET/GET/INCR, random values for SADD&#xA;  Using this option the benchmark will expand the string __rand_int__&#xA;  inside an argument with a 12 digits number in the specified range&#xA;  from 0 to keyspacelen-1. The substitution changes every time a command&#xA;  is executed. Default tests use this to hit random keys in the&#xA;  specified range.&#xA; -P &amp;lt;numreq&amp;gt;        Pipeline &amp;lt;numreq&amp;gt; requests. Default 1 (no pipeline).&#xA; -q                 Quiet. Just show query/sec values&#xA; --csv              Output in CSV format&#xA; -l                 Loop. Run the tests forever&#xA; -t &amp;lt;tests&amp;gt;         Only run the comma separated list of tests. The test&#xA;                    names are the same as the ones produced as output.&#xA; -I                 Idle mode. Just open N idle connections and wait.&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;You need to have a running Redis instance before launching the benchmark.&#xA;You can run the benchmarking utility like so:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Community Redict modules</title>
      <link>https://redict.io/docs/modules/community/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/modules/community/</guid>
      <description>&lt;h1 id=&#34;community-modules-for-redict&#34;&gt;&#xA;  Community Modules for Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#community-modules-for-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict Modules allow you to extend the functionality of Redict with native code.&#xA;For details on writing new modules, see &lt;a href=&#34;https://redict.io/docs/modules/&#34;&gt;Introduction to Redict Modules&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Redict is broadly compatible with Redis® Modules* compatible&#xA;with Redis® versions 7.2.4 and earlier in source and binary form. See&#xA;&lt;a href=&#34;https://redict.io/docs/redis-compat/&#34;&gt;Compatibility with Redis®&lt;/a&gt; for details.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Executing Lua scripts</title>
      <link>https://redict.io/docs/scripting/eval-intro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/scripting/eval-intro/</guid>
      <description>&lt;h1 id=&#34;executing-lua-scripts-in-redict&#34;&gt;&#xA;  Executing Lua scripts in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#executing-lua-scripts-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict lets users upload and execute Lua scripts on the server.&#xA;Scripts can employ programmatic control structures and use most of the &lt;a href=&#34;https://redict.io/docs/commands&#34;&gt;commands&lt;/a&gt; while executing to access the database.&#xA;Because scripts execute in the server, reading and writing data from scripts is very efficient.&lt;/p&gt;&#xA;&lt;p&gt;Redict guarantees the script&amp;rsquo;s atomic execution.&#xA;While executing the script, all server activities are blocked during its entire runtime.&#xA;These semantics mean that all of the script&amp;rsquo;s effects either have yet to happen or had already happened.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating packages</title>
      <link>https://redict.io/docs/redis-compat/package/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/redis-compat/package/</guid>
      <description>&lt;h1 id=&#34;migrating-your-distribution-to-redict&#34;&gt;&#xA;  Migrating your distribution to Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#migrating-your-distribution-to-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This page is intended for maintainers of downstream Redis® packages in large&#xA;software distributions which are deprecating their Redis® package due to the&#xA;license change and looking to provide Redict to their users as a replacement.&lt;/p&gt;&#xA;&lt;h2 id=&#34;build-system-changes&#34;&gt;&#xA;  Build system changes&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#build-system-changes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The build system is largely unchanged from Redis® 7.2.4. Your build scripts&#xA;can be updated by simply replacing the source tarball with the appropriate&#xA;&lt;a href=&#34;https://codeberg.org/redict/redict/releases&#34;&gt;Codeberg release&lt;/a&gt;, then replacing &amp;ldquo;redis&amp;rdquo; with &amp;ldquo;redict&amp;rdquo; throughout.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict modules and blocking commands</title>
      <link>https://redict.io/docs/modules/blocking-ops/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/modules/blocking-ops/</guid>
      <description>&lt;h1 id=&#34;redict-modules-and-blocking-commands&#34;&gt;&#xA;  Redict modules and blocking commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-modules-and-blocking-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict has a few blocking commands among the built-in set of commands.&#xA;One of the most used is &lt;code&gt;BLPOP&lt;/code&gt; (or the symmetric &lt;code&gt;BRPOP&lt;/code&gt;) which blocks&#xA;waiting for elements arriving in a list.&lt;/p&gt;&#xA;&lt;p&gt;The interesting fact about blocking commands is that they do not block&#xA;the whole server, but just the client calling them. Usually the reason to&#xA;block is that we expect some external event to happen: this can be&#xA;some change in the Redict data structures like in the &lt;code&gt;BLPOP&lt;/code&gt; case, a&#xA;long computation happening in a thread, to receive some data from the&#xA;network, and so forth.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating containers</title>
      <link>https://redict.io/docs/redis-compat/containers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/redis-compat/containers/</guid>
      <description>&lt;h1 id=&#34;migrating-to-redict-containers&#34;&gt;&#xA;  Migrating to Redict containers&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#migrating-to-redict-containers&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;For complete details on installing and using Redict containers, see &lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;Usage with&#xA;containers&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Redict differs from Redis® container in that the &amp;ldquo;latest&amp;rdquo; image and images&#xA;based on it (e.g. &amp;ldquo;7.3.1&amp;rdquo;) refer to images based on &amp;ldquo;scratch&amp;rdquo; rather than&#xA;Debian. Debian- and Alpine-based containers are available and broadly compatible&#xA;with Redis® containers, but you may wish to consider the opportunity to&#xA;migrate to a scratch container if you do not depend on any Debian- or&#xA;Alpine-specific features being available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modules API for native types</title>
      <link>https://redict.io/docs/modules/native-types/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/modules/native-types/</guid>
      <description>&lt;h1 id=&#34;modules-api-for-native-types&#34;&gt;&#xA;  Modules API for native types&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#modules-api-for-native-types&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict modules can access Redict built-in data structures both at high level,&#xA;by calling Redict commands, and at low level, by manipulating the data structures&#xA;directly.&lt;/p&gt;&#xA;&lt;p&gt;By using these capabilities in order to build new abstractions on top of existing&#xA;Redict data structures, or by using strings DMA in order to encode modules&#xA;data structures into Redict strings, it is possible to create modules that&#xA;&lt;em&gt;feel like&lt;/em&gt; they are exporting new data types. However, for more complex&#xA;problems, this is not enough, and the implementation of new data structures&#xA;inside the module is needed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Lua functions</title>
      <link>https://redict.io/docs/scripting/functions-intro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/scripting/functions-intro/</guid>
      <description>&lt;h1 id=&#34;redict-functions&#34;&gt;&#xA;  Redict Functions&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-functions&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict Functions is an API for managing code to be executed on the server. They are an evolutionary step from ephemeral scripting.&lt;/p&gt;&#xA;&lt;p&gt;Functions provide the same core functionality as scripts but are first-class software artifacts of the database.&#xA;Redict manages functions as an integral part of the database and ensures their availability via data persistence and replication.&#xA;Because functions are part of the database and therefore declared before use, applications aren&amp;rsquo;t required to load them during runtime nor risk aborted transactions.&#xA;An application that uses functions depends only on their APIs rather than on the embedded script logic in the database.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debugging Lua scripts</title>
      <link>https://redict.io/docs/scripting/debugging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/scripting/debugging/</guid>
      <description>&lt;h2 id=&#34;debugging-lua-scripts-in-redict&#34;&gt;&#xA;  Debugging Lua scripts in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#debugging-lua-scripts-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Redict includes a complete Lua debugger, that can be&#xA;used in order to make the task of writing complex Redict scripts much simpler.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint danger&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Please make sure to avoid debugging Lua scripts using your Redict&#xA;production server. Use a development server instead. Also note that using the&#xA;synchronous debugging mode (which is NOT the default) results in the Redict&#xA;server blocking for all the time the debugging session lasts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>API reference</title>
      <link>https://redict.io/docs/scripting/api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/scripting/api/</guid>
      <description>&lt;h1 id=&#34;redict-lua-api-reference&#34;&gt;&#xA;  Redict Lua API reference&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-lua-api-reference&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict includes an embedded &lt;a href=&#34;https://www.lua.org/&#34;&gt;Lua 5.1&lt;/a&gt; interpreter. The&#xA;interpreter runs user-defined &lt;a href=&#34;https://redict.io/docs/scripting/eval-intro&#34;&gt;ephemeral scripts&lt;/a&gt; and&#xA;&lt;a href=&#34;https://redict.io/docs/scripting/functions-intro&#34;&gt;functions&lt;/a&gt;. Scripts run in a sandboxed context and can&#xA;only access specific Lua packages. This page describes the packages and APIs&#xA;available inside the execution&amp;rsquo;s context.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sandbox-context&#34;&gt;&#xA;  Sandbox context&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#sandbox-context&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The sandboxed Lua context attempts to prevent accidental misuse and reduce&#xA;potential threats from the server&amp;rsquo;s environment.&lt;/p&gt;&#xA;&lt;p&gt;Scripts should never try to access the Redict server&amp;rsquo;s underlying host systems.&#xA;That includes the file system, network, and any other attempt to perform a&#xA;system call other than those supported by the API.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Community resources</title>
      <link>https://redict.io/docs/community/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/community/</guid>
      <description>&lt;h1 id=&#34;engaging-with-the-community&#34;&gt;&#xA;  Engaging with the community&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#engaging-with-the-community&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;There are many ways to engage with the Redict community. Note that the Redict&#xA;project has adopted the &lt;a href=&#34;https://www.contributor-covenant.org/version/2/1/code_of_conduct/&#34;&gt;Contributor Covenant Code of Conduct&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;repository-and-issue-tracker&#34;&gt;&#xA;  Repository and issue tracker&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#repository-and-issue-tracker&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The Redict project is hosted on &lt;a href=&#34;https://codeberg.org/redict&#34;&gt;Codeberg&lt;/a&gt;. The code, documentation, and&#xA;website have individual repositories with their own issue trackers.&lt;/p&gt;&#xA;&lt;p&gt;No contributor license agreement (CLA) or contribution assignment agreement&#xA;(CAA) is required for contributing to any part of the Redict project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About the license</title>
      <link>https://redict.io/docs/license/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/license/</guid>
      <description>&lt;h1 id=&#34;about-the-license&#34;&gt;&#xA;  About the license&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#about-the-license&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is distributed using the &lt;a href=&#34;https://www.gnu.org/licenses/lgpl-3.0.en.html&#34;&gt;Lesser GNU General Public License&lt;/a&gt;, aka&#xA;LGPL-3.0-only, and is based on the Redis®&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; OSS 7.2.4 3-Clause BSD&#xA;licensed source code.&lt;/p&gt;&#xA;&lt;p&gt;LGPL is a copyleft license. The following is no substitute for the advice of a&#xA;lawyer, particularly in more complex scenarios, but it suffices to summarize the&#xA;basic functions of this license for those unfamiliar with the concept.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Commercial and non-commercial users of Redict are not required to&#xA;publish or otherwise &amp;ldquo;open source&amp;rdquo; the source code of Redict, including any&#xA;private modifications they make to the source code, nor are they required to&#xA;publish the source code of any software they use in combination with Redict.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.6 is now available</title>
      <link>https://redict.io/posts/2025-10-08-redict-7.3.6-release/</link>
      <pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2025-10-08-redict-7.3.6-release/</guid>
      <description>&lt;p&gt;Redict 7.3.6 is now available and includes important security updates.&#xA;Deployments which allow authenticated, untrusted users access to the Redict&#xA;database are asked to upgrade urgently.&lt;/p&gt;&#xA;&lt;p&gt;You may download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.6&#34;&gt;on Codeberg&lt;/a&gt;, or update your official&#xA;&lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.6 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-49844&#34;&gt;CVE-2025-49844&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-46817&#34;&gt;CVE-2025-46817&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-46818&#34;&gt;CVE-2025-46818&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-46819&#34;&gt;CVE-2025-46819&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.6 release tarball is&#xA;&lt;code&gt;3d6aedad01f8137beeb2aabc74c128b4eec9a2d0d4433892b855fb2f4e6f39f2&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.5 is now available</title>
      <link>https://redict.io/posts/2025-07-14-redict-7.3.5-release/</link>
      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2025-07-14-redict-7.3.5-release/</guid>
      <description>&lt;p&gt;Redict 7.3.5 is now available and includes security updates of moderate&#xA;importance. Deployments which allow authenticated, untrusted users access to the&#xA;Redict database are asked to upgrade urgently.&lt;/p&gt;&#xA;&lt;p&gt;You may download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.5&#34;&gt;on Codeberg&lt;/a&gt;, or update your official&#xA;&lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.5 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-32023&#34;&gt;CVE-2025-32023&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.5 release tarball is&#xA;&lt;code&gt;1528db77c3539190ebe1fe3963347e02ac8095aff75a19b3373cddcf3f920405&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.4 is now available</title>
      <link>https://redict.io/posts/2025-07-11-redict-7.3.4-release/</link>
      <pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2025-07-11-redict-7.3.4-release/</guid>
      <description>&lt;p&gt;Redict 7.3.4 is now available and includes minor security updates. You may&#xA;download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.4&#34;&gt;on Codeberg&lt;/a&gt;, or update your official &lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container&#xA;images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.4 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-48367&#34;&gt;CVE-2025-48367&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.4 release tarball is&#xA;&lt;code&gt;6c7e60b8b10a46f6fce8ccaaf1d6bf9d0db796a4d6169422c34dedbf8a4cb680&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.3 is now available for urgent deployment</title>
      <link>https://redict.io/posts/2025-05-05-redict-7.3.3-released/</link>
      <pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2025-05-05-redict-7.3.3-released/</guid>
      <description>&lt;p&gt;Redict 7.3.3 is now available and includes important security updates. You may&#xA;download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.3&#34;&gt;on Codeberg&lt;/a&gt;, or update your official &lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container&#xA;images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.3 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2025-21605&#34;&gt;CVE-2025-21605&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.3 release tarball is&#xA;&lt;code&gt;5f96a35620f134ff8d3e91fe9b63ef2f45d343b12b94790ba61cdf2178516b26&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.2 is now available for urgent deployment</title>
      <link>https://redict.io/posts/2025-01-08-redict-7.3.2-released/</link>
      <pubDate>Wed, 08 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2025-01-08-redict-7.3.2-released/</guid>
      <description>&lt;p&gt;Redict 7.3.2 is now available and includes important security updates. You may&#xA;download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.2&#34;&gt;on Codeberg&lt;/a&gt;, or update your official &lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container&#xA;images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.2 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2024-46981&#34;&gt;CVE-2024-46981&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2024-51741&#34;&gt;CVE-2024-51741&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.2 release tarball is&#xA;&lt;code&gt;c00ddb7d9eea879b3effc3dd7d1a8cff954fb472915ab9002ec56068c3af2a73&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.1 is now available for urgent deployment</title>
      <link>https://redict.io/posts/2024-10-01-redict-7.3.1-released/</link>
      <pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2024-10-01-redict-7.3.1-released/</guid>
      <description>&lt;p&gt;Redict 7.3.1 is now available and includes important security updates. You may&#xA;download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.1&#34;&gt;on Codeberg&lt;/a&gt;, or update your official &lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container&#xA;images&lt;/a&gt; via registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;Redict 7.3.1 includes fixes for the following security vulnerabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2024-31449&#34;&gt;CVE-2024-31449&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2024-31227&#34;&gt;CVE-2024-31227&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cve.org/CVERecord?id=CVE-2024-31228&#34;&gt;CVE-2024-31228&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;No other changes are included in this release.&lt;/p&gt;&#xA;&lt;p&gt;The SHA-256 checksum of the Redict 7.3.1 release tarball is&#xA;&lt;code&gt;6dbe80d28503a9252048ab81856efcfec109cdf3f924e840411c30237cf8f634&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Early notice for Redict 7.3.1 security release</title>
      <link>https://redict.io/posts/2024-09-16-redict-7.3.1-early-notice/</link>
      <pubDate>Mon, 16 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2024-09-16-redict-7.3.1-early-notice/</guid>
      <description>&lt;p&gt;Please be advised that Redict version 7.3.1 is scheduled for release on October&#xA;1st and includes changes which address the following vulnerabilities (currently&#xA;under embargo):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CVE-2024-31449&lt;/li&gt;&#xA;&lt;li&gt;CVE-2024-31227&lt;/li&gt;&#xA;&lt;li&gt;CVE-2024-31228&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Users are encouraged to upgrade their Redict installation urgently once the&#xA;release is available on October 1st.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict 7.3.0 is now available</title>
      <link>https://redict.io/posts/2024-04-03-redict-7.3.0-released/</link>
      <pubDate>Wed, 03 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2024-04-03-redict-7.3.0-released/</guid>
      <description>&lt;p&gt;The Redict community is pleased to announce the release of Redict 7.3.0, the&#xA;first stable version of our copyleft fork of Redis® OSS 7.2.4.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; You can&#xA;download the release &lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.0&#34;&gt;on Codeberg&lt;/a&gt;, or download one of our official&#xA;&lt;a href=&#34;https://redict.io/docs/install/containers/&#34;&gt;container images&lt;/a&gt; from registry.redict.io.&lt;/p&gt;&#xA;&lt;p&gt;We have written comprehensive documentation detailing our &lt;a href=&#34;https://redict.io/docs/redis-compat/&#34;&gt;compatibility with&#xA;Redis® OSS 7.2.4&lt;/a&gt;, which also provides detailed documentation for&#xA;various migration scenarios, such as for users of the official Redis®&#xA;containers on Docker Hub, downstream package maintainers, and so on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict release candidate 7.3.0-rc1 is now available: call for testing</title>
      <link>https://redict.io/posts/2024-03-26-redict-release-candidate-7.3.0-rc1/</link>
      <pubDate>Tue, 26 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2024-03-26-redict-release-candidate-7.3.0-rc1/</guid>
      <description>&lt;p&gt;The initial release candidate for Redict&amp;rsquo;s first general release, 7.3.0-rc1, is&#xA;now available for download and testing. You can find the release on Codeberg:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Redict 7.3.0-rc1&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.0-rc1&#34;&gt;Release notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/archive/7.3.0-rc1.tar.gz&#34;&gt;Download .tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/src/tag/7.3.0-rc1&#34;&gt;Browse source code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Update: 7.3.0-rc2 is now available, with two minor changes from rc1:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Redict 7.3.0-rc2&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/releases/tag/7.3.0-rc2&#34;&gt;Release notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/archive/7.3.0-rc2.tar.gz&#34;&gt;Download .tar.gz&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codeberg.org/redict/redict/src/tag/7.3.0-rc2&#34;&gt;Browse source code&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;First time here?&lt;/strong&gt; Redict is an independent fork of Redis®* OSS 7.2.4 licensed&#xA;under the Lesser GNU General Public license (LGPL-3.0-only). Redict is not&#xA;affiliated with Redis®. See&#xA;&lt;a href=&#34;https://redict.io/posts/2024-03-22-redict-is-an-independent-fork/&#34;&gt;the announcement&lt;/a&gt;&#xA;for more details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict is an independent, copyleft fork of Redis®</title>
      <link>https://redict.io/posts/2024-03-22-redict-is-an-independent-fork/</link>
      <pubDate>Fri, 22 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://redict.io/posts/2024-03-22-redict-is-an-independent-fork/</guid>
      <description>&lt;p&gt;Like many of you, I was disappointed when I learned that Redis®&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; was&#xA;changing to &lt;a href=&#34;https://github.com/redis/redis/pull/13157&#34;&gt;a non-free licensing model&lt;/a&gt;. This is a betrayal of&#xA;the free software community, but perhaps not an entirely surprising one. Forks&#xA;are likely to start appearing in the coming days, and today, I would like to&#xA;offer &lt;a href=&#34;https://redict.io/&#34;&gt;Redict&lt;/a&gt; to you as a possible future home for your needs, and&#xA;present its trade-offs as compared to the other forks you&amp;rsquo;re likely to be&#xA;choosing from soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ACL</title>
      <link>https://redict.io/docs/commands/acl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL</title>
      <link>https://redict.io/docs/usage/security/acl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/security/acl/</guid>
      <description>&lt;h1 id=&#34;redict-access-control-list&#34;&gt;&#xA;  Redict Access Control List&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-access-control-list&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;The Redict ACL, short for Access Control List, is the feature that allows certain&#xA;connections to be limited in terms of the commands that can be executed and the&#xA;keys that can be accessed. The way it works is that, after connecting, a client&#xA;is required to provide a username and a valid password to authenticate. If authentication succeeded, the connection is associated with a given&#xA;user and the limits the user has. Redict can be configured so that new&#xA;connections are already authenticated with a &amp;ldquo;default&amp;rdquo; user (this is the&#xA;default configuration). Configuring the default user has, as a side effect,&#xA;the ability to provide only a specific subset of functionalities to connections&#xA;that are not explicitly authenticated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ACL CAT</title>
      <link>https://redict.io/docs/commands/acl-cat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-cat/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL DELUSER</title>
      <link>https://redict.io/docs/commands/acl-deluser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-deluser/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL DRYRUN</title>
      <link>https://redict.io/docs/commands/acl-dryrun/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-dryrun/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL GENPASS</title>
      <link>https://redict.io/docs/commands/acl-genpass/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-genpass/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL GETUSER</title>
      <link>https://redict.io/docs/commands/acl-getuser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-getuser/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL HELP</title>
      <link>https://redict.io/docs/commands/acl-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-help/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL LIST</title>
      <link>https://redict.io/docs/commands/acl-list/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-list/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL LOAD</title>
      <link>https://redict.io/docs/commands/acl-load/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-load/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL LOG</title>
      <link>https://redict.io/docs/commands/acl-log/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-log/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL SAVE</title>
      <link>https://redict.io/docs/commands/acl-save/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-save/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL SETUSER</title>
      <link>https://redict.io/docs/commands/acl-setuser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-setuser/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL USERS</title>
      <link>https://redict.io/docs/commands/acl-users/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-users/</guid>
      <description></description>
    </item>
    <item>
      <title>ACL WHOAMI</title>
      <link>https://redict.io/docs/commands/acl-whoami/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/acl-whoami/</guid>
      <description></description>
    </item>
    <item>
      <title>API reference</title>
      <link>https://redict.io/docs/modules/api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/modules/api/</guid>
      <description>&lt;!-- This file is generated from module.c using&#xA;     utils/generate-module-api-doc.rb --&gt;&#xA;&lt;h1 id=&#34;modules-api-reference&#34;&gt;&#xA;  Modules API reference&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#modules-api-reference&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;span id=&#34;section-heap-allocation-raw-functions&#34;&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;heap-allocation-raw-functions&#34;&gt;&#xA;  Heap allocation raw functions&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#heap-allocation-raw-functions&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Memory allocated with these functions are taken into account by Redict key&#xA;eviction algorithms and are reported in Redict memory usage information.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span id=&#34;RedictModule_Alloc&#34;&gt;&lt;/span&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;redictmodule_alloc&#34;&gt;&#xA;  &lt;code&gt;RedictModule_Alloc&lt;/code&gt;&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redictmodule_alloc&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;void *RedictModule_Alloc(size_t bytes);&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;strong&gt;Available since:&lt;/strong&gt; Redict 7.3.0&lt;/p&gt;&#xA;&lt;p&gt;Use like &lt;code&gt;malloc()&lt;/code&gt;. Memory allocated with this function is reported in&#xA;Redict INFO memory, used for keys eviction according to maxmemory settings&#xA;and in general is taken into account as memory allocated by Redict.&#xA;You should avoid using &lt;code&gt;malloc()&lt;/code&gt;.&#xA;This function panics if unable to allocate enough memory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>APPEND</title>
      <link>https://redict.io/docs/commands/append/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/append/</guid>
      <description></description>
    </item>
    <item>
      <title>ASKING</title>
      <link>https://redict.io/docs/commands/asking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/asking/</guid>
      <description></description>
    </item>
    <item>
      <title>AUTH</title>
      <link>https://redict.io/docs/commands/auth/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/auth/</guid>
      <description></description>
    </item>
    <item>
      <title>BGREWRITEAOF</title>
      <link>https://redict.io/docs/commands/bgrewriteaof/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bgrewriteaof/</guid>
      <description></description>
    </item>
    <item>
      <title>BGSAVE</title>
      <link>https://redict.io/docs/commands/bgsave/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bgsave/</guid>
      <description></description>
    </item>
    <item>
      <title>BITCOUNT</title>
      <link>https://redict.io/docs/commands/bitcount/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bitcount/</guid>
      <description></description>
    </item>
    <item>
      <title>BITFIELD</title>
      <link>https://redict.io/docs/commands/bitfield/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bitfield/</guid>
      <description></description>
    </item>
    <item>
      <title>BITFIELD_RO</title>
      <link>https://redict.io/docs/commands/bitfield_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bitfield_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict bitfields</title>
      <link>https://redict.io/docs/data-types/bitfields/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/bitfields/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-bitfields&#34;&gt;&#xA;  Introduction to Redict Bitfields&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-bitfields&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict bitfields let you set, increment, and get integer values of arbitrary bit length.&#xA;For example, you can operate on anything from unsigned 1-bit integers to signed 63-bit integers.&lt;/p&gt;&#xA;&lt;p&gt;These values are stored using binary-encoded Redict strings.&#xA;Bitfields support atomic read, write and increment operations, making them a good choice for managing counters and similar numerical values.&lt;/p&gt;&#xA;&lt;h2 id=&#34;basic-commands&#34;&gt;&#xA;  Basic commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#basic-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;BITFIELD&lt;/code&gt; atomically sets, increments and reads one or more values.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;BITFIELD_RO&lt;/code&gt; is a read-only variant of &lt;code&gt;BITFIELD&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;&#xA;  Example&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#example&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Suppose you want to maintain two metrics for various bicycles: the current price and the number of owners over time. You can represent these counters with a 32-bit wide bitfield per for each bike.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict bitmaps</title>
      <link>https://redict.io/docs/data-types/bitmaps/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/bitmaps/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-bitmaps&#34;&gt;&#xA;  Introduction to Redict Bitmaps&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-bitmaps&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Bitmaps are not an actual data type, but a set of bit-oriented operations&#xA;defined on the String type which is treated like a bit vector.&#xA;Since strings are binary safe blobs and their maximum length is 512 MB,&#xA;they are suitable to set up to 2^32 different bits.&lt;/p&gt;&#xA;&lt;p&gt;You can perform bitwise operations on one or more strings.&#xA;Some examples of bitmap use cases include:&lt;/p&gt;</description>
    </item>
    <item>
      <title>BITOP</title>
      <link>https://redict.io/docs/commands/bitop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bitop/</guid>
      <description></description>
    </item>
    <item>
      <title>BITPOS</title>
      <link>https://redict.io/docs/commands/bitpos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bitpos/</guid>
      <description></description>
    </item>
    <item>
      <title>BLMOVE</title>
      <link>https://redict.io/docs/commands/blmove/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/blmove/</guid>
      <description></description>
    </item>
    <item>
      <title>BLMPOP</title>
      <link>https://redict.io/docs/commands/blmpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/blmpop/</guid>
      <description></description>
    </item>
    <item>
      <title>BLPOP</title>
      <link>https://redict.io/docs/commands/blpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/blpop/</guid>
      <description></description>
    </item>
    <item>
      <title>BRPOP</title>
      <link>https://redict.io/docs/commands/brpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/brpop/</guid>
      <description></description>
    </item>
    <item>
      <title>BRPOPLPUSH</title>
      <link>https://redict.io/docs/commands/brpoplpush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/brpoplpush/</guid>
      <description></description>
    </item>
    <item>
      <title>Bulk Loading</title>
      <link>https://redict.io/docs/usage/bulk-loading/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/bulk-loading/</guid>
      <description>&lt;h1 id=&#34;writing-data-in-bulk-using-the-redict-protocol&#34;&gt;&#xA;  Writing Data in Bulk Using the Redict Protocol&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#writing-data-in-bulk-using-the-redict-protocol&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Bulk loading is the process of loading Redict with a large amount of&#xA;pre-existing data. This document describes how to bulk-load data in Redict&#xA;quickly and efficiently.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bulk-loading-using-the-redict-cli&#34;&gt;&#xA;  Bulk loading using the redict-cli&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#bulk-loading-using-the-redict-cli&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Using a normal Redict client to perform bulk loading is not a good idea for a&#xA;few reasons: the naive approach of sending one command after the other is slow&#xA;due to the round-trip time for every command. It is possible to use pipelining,&#xA;but for bulk loading of many records, new commands need to be written while&#xA;replies are read.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BZMPOP</title>
      <link>https://redict.io/docs/commands/bzmpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bzmpop/</guid>
      <description></description>
    </item>
    <item>
      <title>BZPOPMAX</title>
      <link>https://redict.io/docs/commands/bzpopmax/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bzpopmax/</guid>
      <description></description>
    </item>
    <item>
      <title>BZPOPMIN</title>
      <link>https://redict.io/docs/commands/bzpopmin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/bzpopmin/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT</title>
      <link>https://redict.io/docs/commands/client/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT CACHING</title>
      <link>https://redict.io/docs/commands/client-caching/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-caching/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT GETNAME</title>
      <link>https://redict.io/docs/commands/client-getname/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-getname/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT GETREDIR</title>
      <link>https://redict.io/docs/commands/client-getredir/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-getredir/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT HELP</title>
      <link>https://redict.io/docs/commands/client-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-help/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT ID</title>
      <link>https://redict.io/docs/commands/client-id/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-id/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT INFO</title>
      <link>https://redict.io/docs/commands/client-info/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-info/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT KILL</title>
      <link>https://redict.io/docs/commands/client-kill/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-kill/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT LIST</title>
      <link>https://redict.io/docs/commands/client-list/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-list/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT NO-EVICT</title>
      <link>https://redict.io/docs/commands/client-no-evict/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-no-evict/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT NO-TOUCH</title>
      <link>https://redict.io/docs/commands/client-no-touch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-no-touch/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT PAUSE</title>
      <link>https://redict.io/docs/commands/client-pause/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-pause/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT REPLY</title>
      <link>https://redict.io/docs/commands/client-reply/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-reply/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT SETINFO</title>
      <link>https://redict.io/docs/commands/client-setinfo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-setinfo/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT SETNAME</title>
      <link>https://redict.io/docs/commands/client-setname/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-setname/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT TRACKING</title>
      <link>https://redict.io/docs/commands/client-tracking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-tracking/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT TRACKINGINFO</title>
      <link>https://redict.io/docs/commands/client-trackinginfo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-trackinginfo/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT UNBLOCK</title>
      <link>https://redict.io/docs/commands/client-unblock/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-unblock/</guid>
      <description></description>
    </item>
    <item>
      <title>CLIENT UNPAUSE</title>
      <link>https://redict.io/docs/commands/client-unpause/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/client-unpause/</guid>
      <description></description>
    </item>
    <item>
      <title>Client-side caching in Redict</title>
      <link>https://redict.io/docs/usage/clients/client-side-caching/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/clients/client-side-caching/</guid>
      <description>&lt;h1 id=&#34;server-assisted-client-side-caching-in-redict&#34;&gt;&#xA;  Server-assisted, client-side caching in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#server-assisted-client-side-caching-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Client-side caching is a technique used to create high performance services.&#xA;It exploits the memory available on application servers, servers that are&#xA;usually distinct computers compared to the database nodes, to store some subset&#xA;of the database information directly in the application side.&lt;/p&gt;&#xA;&lt;p&gt;Normally when data is required, the application servers ask the database about&#xA;such information, like in the following diagram:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;+-------------+                                +----------+&#xA;|             | ------- GET user:1234 -------&amp;gt; |          |&#xA;| Application |                                | Database |&#xA;|             | &amp;lt;---- username = Alice ------- |          |&#xA;+-------------+                                +----------+&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;When client-side caching is used, the application will store the reply of&#xA;popular queries directly inside the application memory, so that it can&#xA;reuse such replies later, without contacting the database again:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict Cluster</title>
      <link>https://redict.io/docs/usage/scaling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/scaling/</guid>
      <description>&lt;h1 id=&#34;horizontal-scaling-with-redict-cluster&#34;&gt;&#xA;  Horizontal Scaling with Redict Cluster&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#horizontal-scaling-with-redict-cluster&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict scales horizontally with a deployment topology called Redict Cluster.&#xA;This topic will teach you how to set up, test, and operate Redict Cluster in production.&#xA;You will learn about the availability and consistency characteristics of Redict Cluster from the end user&amp;rsquo;s point of view.&lt;/p&gt;&#xA;&lt;p&gt;If you plan to run a production Redict Cluster deployment or want to understand better how Redict Cluster works internally, consult the &lt;a href=&#34;https://codeberg.org/redict/redict.io/wiki/cluster-spec&#34;&gt;Redict Cluster specification&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CLUSTER</title>
      <link>https://redict.io/docs/commands/cluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER ADDSLOTS</title>
      <link>https://redict.io/docs/commands/cluster-addslots/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-addslots/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER ADDSLOTSRANGE</title>
      <link>https://redict.io/docs/commands/cluster-addslotsrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-addslotsrange/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER BUMPEPOCH</title>
      <link>https://redict.io/docs/commands/cluster-bumpepoch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-bumpepoch/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER COUNT-FAILURE-REPORTS</title>
      <link>https://redict.io/docs/commands/cluster-count-failure-reports/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-count-failure-reports/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER COUNTKEYSINSLOT</title>
      <link>https://redict.io/docs/commands/cluster-countkeysinslot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-countkeysinslot/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER DELSLOTS</title>
      <link>https://redict.io/docs/commands/cluster-delslots/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-delslots/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER DELSLOTSRANGE</title>
      <link>https://redict.io/docs/commands/cluster-delslotsrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-delslotsrange/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER FAILOVER</title>
      <link>https://redict.io/docs/commands/cluster-failover/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-failover/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER FLUSHSLOTS</title>
      <link>https://redict.io/docs/commands/cluster-flushslots/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-flushslots/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER FORGET</title>
      <link>https://redict.io/docs/commands/cluster-forget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-forget/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER GETKEYSINSLOT</title>
      <link>https://redict.io/docs/commands/cluster-getkeysinslot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-getkeysinslot/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER HELP</title>
      <link>https://redict.io/docs/commands/cluster-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-help/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER INFO</title>
      <link>https://redict.io/docs/commands/cluster-info/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-info/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER KEYSLOT</title>
      <link>https://redict.io/docs/commands/cluster-keyslot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-keyslot/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER LINKS</title>
      <link>https://redict.io/docs/commands/cluster-links/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-links/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER MEET</title>
      <link>https://redict.io/docs/commands/cluster-meet/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-meet/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER MYID</title>
      <link>https://redict.io/docs/commands/cluster-myid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-myid/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER MYSHARDID</title>
      <link>https://redict.io/docs/commands/cluster-myshardid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-myshardid/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER NODES</title>
      <link>https://redict.io/docs/commands/cluster-nodes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-nodes/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER REPLICAS</title>
      <link>https://redict.io/docs/commands/cluster-replicas/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-replicas/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER REPLICATE</title>
      <link>https://redict.io/docs/commands/cluster-replicate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-replicate/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER RESET</title>
      <link>https://redict.io/docs/commands/cluster-reset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-reset/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SAVECONFIG</title>
      <link>https://redict.io/docs/commands/cluster-saveconfig/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-saveconfig/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SET-CONFIG-EPOCH</title>
      <link>https://redict.io/docs/commands/cluster-set-config-epoch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-set-config-epoch/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SETSLOT</title>
      <link>https://redict.io/docs/commands/cluster-setslot/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-setslot/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SHARDS</title>
      <link>https://redict.io/docs/commands/cluster-shards/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-shards/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SLAVES</title>
      <link>https://redict.io/docs/commands/cluster-slaves/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-slaves/</guid>
      <description></description>
    </item>
    <item>
      <title>CLUSTER SLOTS</title>
      <link>https://redict.io/docs/commands/cluster-slots/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/cluster-slots/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND</title>
      <link>https://redict.io/docs/commands/command/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict Command Arguments</title>
      <link>https://redict.io/docs/usage/command-arguments/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/command-arguments/</guid>
      <description>&lt;h1 id=&#34;how-redict-commands-expose-their-documentation-programmatically&#34;&gt;&#xA;  How Redict commands expose their documentation programmatically&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-redict-commands-expose-their-documentation-programmatically&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;code&gt;COMMAND DOCS&lt;/code&gt; command returns documentation-focused information about available Redis commands.&#xA;The map reply that the command returns includes the &lt;em&gt;arguments&lt;/em&gt; key.&#xA;This key stores an array that describes the command&amp;rsquo;s arguments.&lt;/p&gt;&#xA;&lt;p&gt;Every element in the &lt;em&gt;arguments&lt;/em&gt; array is a map with the following fields:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;name:&lt;/strong&gt; the argument&amp;rsquo;s name, always present.&#xA;The name of an argument is given for identification purposes alone.&#xA;It isn&amp;rsquo;t displayed during the command&amp;rsquo;s syntax rendering.&#xA;The same name can appear more than once in the entire argument tree, but it is unique compared to other sibling arguments&amp;rsquo; names.&#xA;This allows obtaining a unique identifier for each argument (the concatenation of all names in the path from the root to any argument).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;display_text:&lt;/strong&gt; the argument&amp;rsquo;s display string, present in arguments that have a displayable representation (all arguments that aren&amp;rsquo;t oneof/block).&#xA;This is the string used in the command&amp;rsquo;s syntax rendering.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;type:&lt;/strong&gt; the argument&amp;rsquo;s type, always present.&#xA;An argument must have one of the following types:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;string:&lt;/strong&gt; a string argument.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;integer:&lt;/strong&gt; an integer argument.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;double:&lt;/strong&gt; a double-precision argument.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;key:&lt;/strong&gt; a string that represents the name of a key.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pattern:&lt;/strong&gt; a string that represents a glob-like pattern.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;unix-time:&lt;/strong&gt; an integer that represents a Unix timestamp.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;pure-token:&lt;/strong&gt; an argument is a token, meaning a reserved keyword, which may or may not be provided.&#xA;Not to be confused with free-text user input.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;oneof&lt;/strong&gt;: the argument is a container for nested arguments.&#xA;This type enables choice among several nested arguments (see the &lt;code&gt;XADD&lt;/code&gt; example below).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;block:&lt;/strong&gt; the argument is a container for nested arguments.&#xA;This type enables grouping arguments and applying a property (such as &lt;em&gt;optional&lt;/em&gt;) to all (see the &lt;code&gt;XADD&lt;/code&gt; example below).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;key_spec_index:&lt;/strong&gt; this value is available for every argument of the &lt;em&gt;key&lt;/em&gt; type.&#xA;It is a 0-based index of the specification in the command&amp;rsquo;s &lt;a href=&#34;https://redict.io/docs/usage/clients/client-side-caching/&#34;&gt;key specifications&lt;/a&gt; that corresponds to the argument.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;token&lt;/strong&gt;: a constant literal that precedes the argument (user input) itself.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;summary:&lt;/strong&gt; a short description of the argument.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;since:&lt;/strong&gt; the debut Redis version of the argument (or for module commands, the module version).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;deprecated_since:&lt;/strong&gt; the Redis version that deprecated the command (or for module commands, the module version).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;flags:&lt;/strong&gt; an array of argument flags.&#xA;Possible flags are:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;optional&lt;/strong&gt;: denotes that the argument is optional (for example, the &lt;em&gt;GET&lt;/em&gt; clause of the  &lt;code&gt;SET&lt;/code&gt; command).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;multiple&lt;/strong&gt;: denotes that the argument may be repeated (such as the &lt;em&gt;key&lt;/em&gt; argument of &lt;code&gt;DEL&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;multiple-token:&lt;/strong&gt; denotes the possible repetition of the argument with its preceding token (see &lt;code&gt;SORT&lt;/code&gt;&amp;rsquo;s &lt;code&gt;GET pattern&lt;/code&gt; clause).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;value:&lt;/strong&gt; the argument&amp;rsquo;s value.&#xA;For arguments types other than &lt;em&gt;oneof&lt;/em&gt; and &lt;em&gt;block&lt;/em&gt;, this is a string that describes the value in the command&amp;rsquo;s syntax.&#xA;For the &lt;em&gt;oneof&lt;/em&gt; and &lt;em&gt;block&lt;/em&gt; types, this is an array of nested arguments, each being a map as described in this section.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;&#xA;  Example&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#example&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The trimming clause of &lt;code&gt;XADD&lt;/code&gt;, i.e., &lt;code&gt;[MAXLEN|MINID [=|~] threshold [LIMIT count]]&lt;/code&gt;, is represented at the top-level as &lt;em&gt;block&lt;/em&gt;-typed argument.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COMMAND COUNT</title>
      <link>https://redict.io/docs/commands/command-count/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-count/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND DOCS</title>
      <link>https://redict.io/docs/commands/command-docs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-docs/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND GETKEYS</title>
      <link>https://redict.io/docs/commands/command-getkeys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-getkeys/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND GETKEYSANDFLAGS</title>
      <link>https://redict.io/docs/commands/command-getkeysandflags/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-getkeysandflags/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND HELP</title>
      <link>https://redict.io/docs/commands/command-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-help/</guid>
      <description></description>
    </item>
    <item>
      <title>COMMAND INFO</title>
      <link>https://redict.io/docs/commands/command-info/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-info/</guid>
      <description></description>
    </item>
    <item>
      <title>Command key specifications</title>
      <link>https://redict.io/docs/usage/clients/key-specs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/clients/key-specs/</guid>
      <description>&lt;h1 id=&#34;what-are-command-key-specification-and-how-to-use-them-in-your-client&#34;&gt;&#xA;  What are command key specification and how to use them in your client&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#what-are-command-key-specification-and-how-to-use-them-in-your-client&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Many of the commands in Redict accept key names as input arguments.&#xA;The 9th element in the reply of &lt;code&gt;COMMAND&lt;/code&gt; (and &lt;code&gt;COMMAND INFO&lt;/code&gt;) is an array that consists of the command&amp;rsquo;s key specifications.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;em&gt;key specification&lt;/em&gt; describes a rule for extracting the names of one or more keys from the arguments of a given command.&#xA;Key specifications provide a robust and flexible mechanism to extract key names for all commands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COMMAND LIST</title>
      <link>https://redict.io/docs/commands/command-list/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/command-list/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict command tips</title>
      <link>https://redict.io/docs/usage/command-tips/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/command-tips/</guid>
      <description>&lt;h1 id=&#34;command-tips&#34;&gt;&#xA;  Command Tips&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#command-tips&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Command tips are an array of strings. These provide Redict clients with&#xA;additional information about the command. The information can instruct Redict&#xA;Cluster clients as to how the command should be executed and its output&#xA;processed in a clustered deployment.&lt;/p&gt;&#xA;&lt;p&gt;Unlike the command&amp;rsquo;s flags (see the 3rd element of &lt;code&gt;COMMAND&lt;/code&gt;&amp;rsquo;s reply), which&#xA;are strictly internal to the server&amp;rsquo;s operation, tips don&amp;rsquo;t serve any purpose&#xA;other than being reported to clients.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CONFIG</title>
      <link>https://redict.io/docs/commands/config/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config/</guid>
      <description></description>
    </item>
    <item>
      <title>CONFIG GET</title>
      <link>https://redict.io/docs/commands/config-get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config-get/</guid>
      <description></description>
    </item>
    <item>
      <title>CONFIG HELP</title>
      <link>https://redict.io/docs/commands/config-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config-help/</guid>
      <description></description>
    </item>
    <item>
      <title>CONFIG RESETSTAT</title>
      <link>https://redict.io/docs/commands/config-resetstat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config-resetstat/</guid>
      <description></description>
    </item>
    <item>
      <title>CONFIG REWRITE</title>
      <link>https://redict.io/docs/commands/config-rewrite/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config-rewrite/</guid>
      <description></description>
    </item>
    <item>
      <title>CONFIG SET</title>
      <link>https://redict.io/docs/commands/config-set/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/config-set/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict configuration</title>
      <link>https://redict.io/docs/usage/config/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/config/</guid>
      <description>&lt;h1 id=&#34;configuration&#34;&gt;&#xA;  Configuration&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#configuration&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is able to start without a configuration file using a built-in default&#xA;configuration, however this setup is only recommended for testing and&#xA;development purposes.&lt;/p&gt;&#xA;&lt;p&gt;The proper way to configure Redict is by providing a Redict configuration file,&#xA;usually called &lt;code&gt;redict.conf&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;redict.conf&lt;/code&gt; file contains a number of directives that have a very simple&#xA;format:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;keyword argument1 argument2 ... argumentN&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This is an example of a configuration directive:&lt;/p&gt;</description>
    </item>
    <item>
      <title>COPY</title>
      <link>https://redict.io/docs/commands/copy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/copy/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict CPU profiling</title>
      <link>https://redict.io/docs/usage/optimization/cpu-profiling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/optimization/cpu-profiling/</guid>
      <description>&lt;h1 id=&#34;performance-engineering-guide&#34;&gt;&#xA;  Performance Engineering Guide&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#performance-engineering-guide&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;filling-the-performance-checklist&#34;&gt;&#xA;  Filling the performance checklist&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#filling-the-performance-checklist&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Redict is developed with a great emphasis on performance. We do our best with&#xA;every release to make sure you&amp;rsquo;ll experience a very stable and fast product.&lt;/p&gt;&#xA;&lt;p&gt;Nevertheless, if you&amp;rsquo;re finding room to improve the efficiency of Redict or&#xA;are pursuing a performance regression investigation you will need a concise&#xA;methodical way of monitoring and analyzing Redict performance.&lt;/p&gt;&#xA;&lt;p&gt;To do so you can rely on different methodologies (some more suited than other&#xA;depending on the class of issues/analysis we intend to make). A curated list&#xA;of methodologies and their steps are enumerated by Brendan Greg at the&#xA;&lt;a href=&#34;http://www.brendangregg.com/methodology.html&#34;&gt;following link&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DBSIZE</title>
      <link>https://redict.io/docs/commands/dbsize/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/dbsize/</guid>
      <description></description>
    </item>
    <item>
      <title>DEBUG</title>
      <link>https://redict.io/docs/commands/debug/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/debug/</guid>
      <description></description>
    </item>
    <item>
      <title>Debugging</title>
      <link>https://redict.io/docs/usage/debugging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/debugging/</guid>
      <description>&lt;h1 id=&#34;debugging&#34;&gt;&#xA;  Debugging&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#debugging&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is developed with an emphasis on stability. We do our best with&#xA;every release to make sure you&amp;rsquo;ll experience a stable product with no&#xA;crashes. However, if you ever need to debug the Redict process itself, read on.&lt;/p&gt;&#xA;&lt;p&gt;When Redict crashes, it produces a detailed report of what happened. However,&#xA;sometimes looking at the crash report is not enough, nor is it possible for&#xA;the Redict core team to reproduce the issue independently. In this scenario, we&#xA;need help from the user who can reproduce the issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DECR</title>
      <link>https://redict.io/docs/commands/decr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/decr/</guid>
      <description></description>
    </item>
    <item>
      <title>DECRBY</title>
      <link>https://redict.io/docs/commands/decrby/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/decrby/</guid>
      <description></description>
    </item>
    <item>
      <title>DEL</title>
      <link>https://redict.io/docs/commands/del/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/del/</guid>
      <description></description>
    </item>
    <item>
      <title>DISCARD</title>
      <link>https://redict.io/docs/commands/discard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/discard/</guid>
      <description></description>
    </item>
    <item>
      <title>Distributed Locks</title>
      <link>https://redict.io/docs/usage/distributed-locks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/distributed-locks/</guid>
      <description>&lt;h1 id=&#34;a-distributed-lock-pattern-with-redict&#34;&gt;&#xA;  A Distributed Lock Pattern with Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#a-distributed-lock-pattern-with-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Distributed locks are a very useful primitive in many environments where&#xA;different processes must operate with shared resources in a mutually&#xA;exclusive way.&lt;/p&gt;&#xA;&lt;p&gt;There are a number of libraries and blog posts describing how to implement&#xA;a DLM (Distributed Lock Manager) with Redict, but every library uses a different&#xA;approach, and many use a simple approach with lower guarantees compared to&#xA;what can be achieved with slightly more complex designs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DUMP</title>
      <link>https://redict.io/docs/commands/dump/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/dump/</guid>
      <description></description>
    </item>
    <item>
      <title>ECHO</title>
      <link>https://redict.io/docs/commands/echo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/echo/</guid>
      <description></description>
    </item>
    <item>
      <title>EVAL</title>
      <link>https://redict.io/docs/commands/eval/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/eval/</guid>
      <description></description>
    </item>
    <item>
      <title>EVAL_RO</title>
      <link>https://redict.io/docs/commands/eval_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/eval_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>EVALSHA</title>
      <link>https://redict.io/docs/commands/evalsha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/evalsha/</guid>
      <description></description>
    </item>
    <item>
      <title>EVALSHA_RO</title>
      <link>https://redict.io/docs/commands/evalsha_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/evalsha_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>EXEC</title>
      <link>https://redict.io/docs/commands/exec/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/exec/</guid>
      <description></description>
    </item>
    <item>
      <title>EXISTS</title>
      <link>https://redict.io/docs/commands/exists/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/exists/</guid>
      <description></description>
    </item>
    <item>
      <title>EXPIRE</title>
      <link>https://redict.io/docs/commands/expire/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/expire/</guid>
      <description></description>
    </item>
    <item>
      <title>EXPIREAT</title>
      <link>https://redict.io/docs/commands/expireat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/expireat/</guid>
      <description></description>
    </item>
    <item>
      <title>EXPIRETIME</title>
      <link>https://redict.io/docs/commands/expiretime/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/expiretime/</guid>
      <description></description>
    </item>
    <item>
      <title>FAILOVER</title>
      <link>https://redict.io/docs/commands/failover/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/failover/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict FAQ</title>
      <link>https://redict.io/docs/usage/faq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/faq/</guid>
      <description>&lt;h1 id=&#34;faq&#34;&gt;&#xA;  FAQ&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#faq&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;how-is-redict-different-from-other-key-value-stores&#34;&gt;&#xA;  How is Redict different from other key-value stores?&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-is-redict-different-from-other-key-value-stores&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Redict has a different evolution path in the key-value DBs where values can contain more complex data types, with atomic operations defined on those data types. Redict data types are closely related to fundamental data structures and are exposed to the programmer as such, without additional abstraction layers.&lt;/li&gt;&#xA;&lt;li&gt;Redict is an in-memory but persistent on disk database, so it represents a different trade off where very high write and read speed is achieved with the limitation of data sets that can&amp;rsquo;t be larger than memory. Another advantage of&#xA;in-memory databases is that the memory representation of complex data structures&#xA;is much simpler to manipulate compared to the same data structures on disk, so&#xA;Redict can do a lot with little internal complexity. At the same time the&#xA;two on-disk storage formats (RDB and AOF) don&amp;rsquo;t need to be suitable for random&#xA;access, so they are compact and always generated in an append-only fashion&#xA;(Even the AOF log rotation is an append-only operation, since the new version&#xA;is generated from the copy of data in memory). However this design also involves&#xA;different challenges compared to traditional on-disk stores. Being the main data&#xA;representation on memory, Redict operations must be carefully handled to make sure&#xA;there is always an updated version of the data set on disk.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;whats-the-redict-memory-footprint&#34;&gt;&#xA;  What&amp;rsquo;s the Redict memory footprint?&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#whats-the-redict-memory-footprint&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To give you a few examples (all obtained using 64-bit instances):&lt;/p&gt;</description>
    </item>
    <item>
      <title>FCALL</title>
      <link>https://redict.io/docs/commands/fcall/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/fcall/</guid>
      <description></description>
    </item>
    <item>
      <title>FCALL_RO</title>
      <link>https://redict.io/docs/commands/fcall_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/fcall_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>FLUSHALL</title>
      <link>https://redict.io/docs/commands/flushall/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/flushall/</guid>
      <description></description>
    </item>
    <item>
      <title>FLUSHDB</title>
      <link>https://redict.io/docs/commands/flushdb/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/flushdb/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION</title>
      <link>https://redict.io/docs/commands/function/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION DELETE</title>
      <link>https://redict.io/docs/commands/function-delete/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-delete/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION DUMP</title>
      <link>https://redict.io/docs/commands/function-dump/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-dump/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION FLUSH</title>
      <link>https://redict.io/docs/commands/function-flush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-flush/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION HELP</title>
      <link>https://redict.io/docs/commands/function-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-help/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION KILL</title>
      <link>https://redict.io/docs/commands/function-kill/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-kill/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION LIST</title>
      <link>https://redict.io/docs/commands/function-list/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-list/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION LOAD</title>
      <link>https://redict.io/docs/commands/function-load/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-load/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION RESTORE</title>
      <link>https://redict.io/docs/commands/function-restore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-restore/</guid>
      <description></description>
    </item>
    <item>
      <title>FUNCTION STATS</title>
      <link>https://redict.io/docs/commands/function-stats/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/function-stats/</guid>
      <description></description>
    </item>
    <item>
      <title>GEOADD</title>
      <link>https://redict.io/docs/commands/geoadd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geoadd/</guid>
      <description></description>
    </item>
    <item>
      <title>GEODIST</title>
      <link>https://redict.io/docs/commands/geodist/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geodist/</guid>
      <description></description>
    </item>
    <item>
      <title>GEOHASH</title>
      <link>https://redict.io/docs/commands/geohash/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geohash/</guid>
      <description></description>
    </item>
    <item>
      <title>GEOPOS</title>
      <link>https://redict.io/docs/commands/geopos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geopos/</guid>
      <description></description>
    </item>
    <item>
      <title>GEORADIUS</title>
      <link>https://redict.io/docs/commands/georadius/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/georadius/</guid>
      <description></description>
    </item>
    <item>
      <title>GEORADIUS_RO</title>
      <link>https://redict.io/docs/commands/georadius_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/georadius_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>GEORADIUSBYMEMBER</title>
      <link>https://redict.io/docs/commands/georadiusbymember/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/georadiusbymember/</guid>
      <description></description>
    </item>
    <item>
      <title>GEORADIUSBYMEMBER_RO</title>
      <link>https://redict.io/docs/commands/georadiusbymember_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/georadiusbymember_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>GEOSEARCH</title>
      <link>https://redict.io/docs/commands/geosearch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geosearch/</guid>
      <description></description>
    </item>
    <item>
      <title>GEOSEARCHSTORE</title>
      <link>https://redict.io/docs/commands/geosearchstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/geosearchstore/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict geospatial</title>
      <link>https://redict.io/docs/data-types/geospatial/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/geospatial/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-geospatial&#34;&gt;&#xA;  Introduction to Redict Geospatial&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-geospatial&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict geospatial indexes let you store coordinates and search for them.&#xA;This data structure is useful for finding nearby points within a given radius or bounding box.&lt;/p&gt;&#xA;&lt;h2 id=&#34;basic-commands&#34;&gt;&#xA;  Basic commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#basic-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;GEOADD&lt;/code&gt; adds a location to a given geospatial index (note that longitude comes before latitude with this command).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;GEOSEARCH&lt;/code&gt; returns locations with a given radius or a bounding box.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;See the &lt;a href=&#34;https://redict.io/docs/commands/#geospatial&#34;&gt;complete list of geospatial index commands&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GET</title>
      <link>https://redict.io/docs/commands/get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/get/</guid>
      <description></description>
    </item>
    <item>
      <title>GETBIT</title>
      <link>https://redict.io/docs/commands/getbit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/getbit/</guid>
      <description></description>
    </item>
    <item>
      <title>GETDEL</title>
      <link>https://redict.io/docs/commands/getdel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/getdel/</guid>
      <description></description>
    </item>
    <item>
      <title>GETEX</title>
      <link>https://redict.io/docs/commands/getex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/getex/</guid>
      <description></description>
    </item>
    <item>
      <title>GETRANGE</title>
      <link>https://redict.io/docs/commands/getrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/getrange/</guid>
      <description></description>
    </item>
    <item>
      <title>GETSET</title>
      <link>https://redict.io/docs/commands/getset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/getset/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict hashes</title>
      <link>https://redict.io/docs/data-types/hashes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/hashes/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-hashes&#34;&gt;&#xA;  Introduction to Redict Hashes&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-hashes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict hashes are record types structured as collections of field-value pairs.&#xA;You can use hashes to represent basic objects and to store groupings of counters, among other things.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt; HSET bike:1 model Deimos brand Ergonom type &amp;#39;Enduro bikes&amp;#39; price 4972&#xA;(integer) 4&#xA;&amp;gt; HGET bike:1 model&#xA;&amp;#34;Deimos&amp;#34;&#xA;&amp;gt; HGET bike:1 price&#xA;&amp;#34;4972&amp;#34;&#xA;&amp;gt; HGETALL bike:1&#xA;1) &amp;#34;model&amp;#34;&#xA;2) &amp;#34;Deimos&amp;#34;&#xA;3) &amp;#34;brand&amp;#34;&#xA;4) &amp;#34;Ergonom&amp;#34;&#xA;5) &amp;#34;type&amp;#34;&#xA;6) &amp;#34;Enduro bikes&amp;#34;&#xA;7) &amp;#34;price&amp;#34;&#xA;8) &amp;#34;4972&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;While hashes are handy to represent &lt;em&gt;objects&lt;/em&gt;, actually the number of fields you can&#xA;put inside a hash has no practical limits (other than available memory), so you can use&#xA;hashes in many different ways inside your application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>HDEL</title>
      <link>https://redict.io/docs/commands/hdel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hdel/</guid>
      <description></description>
    </item>
    <item>
      <title>HELLO</title>
      <link>https://redict.io/docs/commands/hello/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hello/</guid>
      <description></description>
    </item>
    <item>
      <title>HEXISTS</title>
      <link>https://redict.io/docs/commands/hexists/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hexists/</guid>
      <description></description>
    </item>
    <item>
      <title>HGET</title>
      <link>https://redict.io/docs/commands/hget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hget/</guid>
      <description></description>
    </item>
    <item>
      <title>HGETALL</title>
      <link>https://redict.io/docs/commands/hgetall/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hgetall/</guid>
      <description></description>
    </item>
    <item>
      <title>HINCRBY</title>
      <link>https://redict.io/docs/commands/hincrby/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hincrby/</guid>
      <description></description>
    </item>
    <item>
      <title>HINCRBYFLOAT</title>
      <link>https://redict.io/docs/commands/hincrbyfloat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hincrbyfloat/</guid>
      <description></description>
    </item>
    <item>
      <title>HKEYS</title>
      <link>https://redict.io/docs/commands/hkeys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hkeys/</guid>
      <description></description>
    </item>
    <item>
      <title>HLEN</title>
      <link>https://redict.io/docs/commands/hlen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hlen/</guid>
      <description></description>
    </item>
    <item>
      <title>HMGET</title>
      <link>https://redict.io/docs/commands/hmget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hmget/</guid>
      <description></description>
    </item>
    <item>
      <title>HMSET</title>
      <link>https://redict.io/docs/commands/hmset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hmset/</guid>
      <description></description>
    </item>
    <item>
      <title>HRANDFIELD</title>
      <link>https://redict.io/docs/commands/hrandfield/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hrandfield/</guid>
      <description></description>
    </item>
    <item>
      <title>HSCAN</title>
      <link>https://redict.io/docs/commands/hscan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hscan/</guid>
      <description></description>
    </item>
    <item>
      <title>HSET</title>
      <link>https://redict.io/docs/commands/hset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hset/</guid>
      <description></description>
    </item>
    <item>
      <title>HSETNX</title>
      <link>https://redict.io/docs/commands/hsetnx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hsetnx/</guid>
      <description></description>
    </item>
    <item>
      <title>HSTRLEN</title>
      <link>https://redict.io/docs/commands/hstrlen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hstrlen/</guid>
      <description></description>
    </item>
    <item>
      <title>HVALS</title>
      <link>https://redict.io/docs/commands/hvals/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/hvals/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict HyperLogLog</title>
      <link>https://redict.io/docs/data-types/hyperloglogs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/hyperloglogs/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-hyperloglogs&#34;&gt;&#xA;  Introduction to Redict HyperLogLogs&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-hyperloglogs&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;HyperLogLog is a probabilistic data structure that estimates the cardinality of a set. As a probabilistic data structure, HyperLogLog trades perfect accuracy for efficient space utilization.&lt;/p&gt;&#xA;&lt;p&gt;The Redict HyperLogLog implementation uses up to 12 KB and provides a standard error of 0.81%.&lt;/p&gt;&#xA;&lt;p&gt;Counting unique items usually requires an amount of memory&#xA;proportional to the number of items you want to count, because you need&#xA;to remember the elements you have already seen in the past in order to avoid&#xA;counting them multiple times. However, a set of algorithms exist that trade&#xA;memory for precision: they return an estimated measure with a standard error,&#xA;which, in the case of the Redict implementation for HyperLogLog, is less than 1%.&#xA;The magic of this algorithm is that you no longer need to use an amount of memory&#xA;proportional to the number of items counted, and instead can use a&#xA;constant amount of memory; 12k bytes in the worst case, or a lot less if your&#xA;HyperLogLog (We&amp;rsquo;ll just call them HLL from now) has seen very few elements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>INCR</title>
      <link>https://redict.io/docs/commands/incr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/incr/</guid>
      <description></description>
    </item>
    <item>
      <title>INCRBY</title>
      <link>https://redict.io/docs/commands/incrby/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/incrby/</guid>
      <description></description>
    </item>
    <item>
      <title>INCRBYFLOAT</title>
      <link>https://redict.io/docs/commands/incrbyfloat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/incrbyfloat/</guid>
      <description></description>
    </item>
    <item>
      <title>INFO</title>
      <link>https://redict.io/docs/commands/info/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/info/</guid>
      <description></description>
    </item>
    <item>
      <title>Key Eviction</title>
      <link>https://redict.io/docs/usage/eviction/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/eviction/</guid>
      <description>&lt;h1 id=&#34;overview-of-redict-key-eviction-policies&#34;&gt;&#xA;  Overview of Redict key eviction policies&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#overview-of-redict-key-eviction-policies&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;When Redict is used as a cache, it is often convenient to let it automatically&#xA;evict old data as you add new data. This behavior is well known in the&#xA;developer community, since it is the default behavior for the popular&#xA;&lt;em&gt;memcached&lt;/em&gt; system.&lt;/p&gt;&#xA;&lt;p&gt;This page covers the more general topic of the Redict &lt;code&gt;maxmemory&lt;/code&gt; directive used to limit the memory usage to a fixed amount. It also extensively covers the LRU eviction algorithm used by Redict, which is actually an approximation of&#xA;the exact LRU.&lt;/p&gt;</description>
    </item>
    <item>
      <title>KEYS</title>
      <link>https://redict.io/docs/commands/keys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/keys/</guid>
      <description></description>
    </item>
    <item>
      <title>Managing Keys in Redict</title>
      <link>https://redict.io/docs/usage/keyspace/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/keyspace/</guid>
      <description>&lt;h1 id=&#34;managing-keys-in-redict&#34;&gt;&#xA;  Managing Keys in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#managing-keys-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict keys are binary safe; this means that you can use any binary sequence as a&#xA;key, from a string like &amp;ldquo;foo&amp;rdquo; to the content of a JPEG file.&#xA;The empty string is also a valid key.&lt;/p&gt;&#xA;&lt;p&gt;A few other rules about keys:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Very long keys are not a good idea. For instance a key of 1024 bytes is a bad&#xA;idea not only memory-wise, but also because the lookup of the key in the&#xA;dataset may require several costly key-comparisons. Even when the task at hand&#xA;is to match the existence of a large value, hashing it (for example&#xA;with SHA1) is a better idea, especially from the perspective of memory&#xA;and bandwidth.&lt;/li&gt;&#xA;&lt;li&gt;Very short keys are often not a good idea. There is little point in writing&#xA;&amp;ldquo;u1000flw&amp;rdquo; as a key if you can instead write &amp;ldquo;user:1000:followers&amp;rdquo;.  The latter&#xA;is more readable and the added space is minor compared to the space used by&#xA;the key object itself and the value object. While short keys will obviously&#xA;consume a bit less memory, your job is to find the right balance.&lt;/li&gt;&#xA;&lt;li&gt;Try to stick with a schema. For instance &amp;ldquo;object-type:id&amp;rdquo; is a good&#xA;idea, as in &amp;ldquo;user:1000&amp;rdquo;. Dots or dashes are often used for multi-word&#xA;fields, as in &amp;ldquo;comment:4321:reply.to&amp;rdquo; or &amp;ldquo;comment:4321:reply-to&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;The maximum allowed key size is 512 MB.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;altering-and-querying-the-key-space&#34;&gt;&#xA;  Altering and querying the key space&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#altering-and-querying-the-key-space&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;There are commands that are not defined on particular types, but are useful&#xA;in order to interact with the space of keys, and thus, can be used with&#xA;keys of any type.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict keyspace notifications</title>
      <link>https://redict.io/docs/usage/clients/keyspace-notifications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/clients/keyspace-notifications/</guid>
      <description>&lt;h1 id=&#34;monitor-changes-to-redict-keys-and-values-in-real-time&#34;&gt;&#xA;  Monitor changes to Redict keys and values in real time&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#monitor-changes-to-redict-keys-and-values-in-real-time&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Keyspace notifications allow clients to subscribe to Pub/Sub channels in order&#xA;to receive events affecting the Redict data set in some way.&lt;/p&gt;&#xA;&lt;p&gt;Examples of events that can be received are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All the commands affecting a given key.&lt;/li&gt;&#xA;&lt;li&gt;All the keys receiving an LPUSH operation.&lt;/li&gt;&#xA;&lt;li&gt;All the keys expiring in the database 0.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Note: Redict Pub/Sub is &lt;em&gt;fire and forget&lt;/em&gt; that is, if your Pub/Sub client disconnects,&#xA;and reconnects later, all the events delivered during the time the client was&#xA;disconnected are lost.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LASTSAVE</title>
      <link>https://redict.io/docs/commands/lastsave/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lastsave/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY</title>
      <link>https://redict.io/docs/commands/latency/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency/</guid>
      <description></description>
    </item>
    <item>
      <title>Latency diagnosis</title>
      <link>https://redict.io/docs/usage/optimization/latency/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/optimization/latency/</guid>
      <description>&lt;h1 id=&#34;diagnosing-latency-issues&#34;&gt;&#xA;  Diagnosing latency issues&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#diagnosing-latency-issues&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This document will help you understand what the problem could be if you&#xA;are experiencing latency problems with Redict.&lt;/p&gt;&#xA;&lt;p&gt;In this context &lt;em&gt;latency&lt;/em&gt; is the maximum delay between the time a client&#xA;issues a command and the time the reply to the command is received by the&#xA;client. Usually Redict processing time is extremely low, in the sub microsecond&#xA;range, but there are certain conditions leading to higher latency figures.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LATENCY DOCTOR</title>
      <link>https://redict.io/docs/commands/latency-doctor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-doctor/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY GRAPH</title>
      <link>https://redict.io/docs/commands/latency-graph/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-graph/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY HELP</title>
      <link>https://redict.io/docs/commands/latency-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-help/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY HISTOGRAM</title>
      <link>https://redict.io/docs/commands/latency-histogram/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-histogram/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY HISTORY</title>
      <link>https://redict.io/docs/commands/latency-history/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-history/</guid>
      <description></description>
    </item>
    <item>
      <title>LATENCY LATEST</title>
      <link>https://redict.io/docs/commands/latency-latest/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-latest/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict latency monitoring</title>
      <link>https://redict.io/docs/usage/optimization/latency-monitor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/optimization/latency-monitor/</guid>
      <description>&lt;h1 id=&#34;latency-monitoring&#34;&gt;&#xA;  Latency Monitoring&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#latency-monitoring&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is often used for demanding use cases, where it&#xA;serves a large number of queries per second per instance, but also has strict latency requirements for the average response&#xA;time and the worst-case latency.&lt;/p&gt;&#xA;&lt;p&gt;While Redict is an in-memory system, it deals with the operating system in&#xA;different ways, for example, in the context of persisting to disk.&#xA;Moreover Redict implements a rich set of commands. Certain commands&#xA;are fast and run in constant or logarithmic time. Other commands are slower&#xA;O(N) commands that can cause latency spikes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LATENCY RESET</title>
      <link>https://redict.io/docs/commands/latency-reset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/latency-reset/</guid>
      <description></description>
    </item>
    <item>
      <title>LCS</title>
      <link>https://redict.io/docs/commands/lcs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lcs/</guid>
      <description></description>
    </item>
    <item>
      <title>LINDEX</title>
      <link>https://redict.io/docs/commands/lindex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lindex/</guid>
      <description></description>
    </item>
    <item>
      <title>LINSERT</title>
      <link>https://redict.io/docs/commands/linsert/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/linsert/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict lists</title>
      <link>https://redict.io/docs/data-types/lists/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/lists/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-lists&#34;&gt;&#xA;  Introduction to Redict Lists&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-lists&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict lists are linked lists of string values.&#xA;Redict lists are frequently used to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Implement stacks and queues.&lt;/li&gt;&#xA;&lt;li&gt;Build queue management for background worker systems.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;basic-commands&#34;&gt;&#xA;  Basic commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#basic-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;LPUSH&lt;/code&gt; adds a new element to the head of a list; &lt;code&gt;RPUSH&lt;/code&gt; adds to the tail.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LPOP&lt;/code&gt; removes and returns an element from the head of a list; &lt;code&gt;RPOP&lt;/code&gt; does the same but from the tails of a list.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LLEN&lt;/code&gt; returns the length of a list.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LMOVE&lt;/code&gt; atomically moves elements from one list to another.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;LTRIM&lt;/code&gt; reduces a list to the specified range of elements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;blocking-commands&#34;&gt;&#xA;  Blocking commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#blocking-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Lists support several blocking commands.&#xA;For example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>LLEN</title>
      <link>https://redict.io/docs/commands/llen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/llen/</guid>
      <description></description>
    </item>
    <item>
      <title>LMOVE</title>
      <link>https://redict.io/docs/commands/lmove/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lmove/</guid>
      <description></description>
    </item>
    <item>
      <title>LMPOP</title>
      <link>https://redict.io/docs/commands/lmpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lmpop/</guid>
      <description></description>
    </item>
    <item>
      <title>LOLWUT</title>
      <link>https://redict.io/docs/commands/lolwut/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lolwut/</guid>
      <description></description>
    </item>
    <item>
      <title>LPOP</title>
      <link>https://redict.io/docs/commands/lpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lpop/</guid>
      <description></description>
    </item>
    <item>
      <title>LPOS</title>
      <link>https://redict.io/docs/commands/lpos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lpos/</guid>
      <description></description>
    </item>
    <item>
      <title>LPUSH</title>
      <link>https://redict.io/docs/commands/lpush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lpush/</guid>
      <description></description>
    </item>
    <item>
      <title>LPUSHX</title>
      <link>https://redict.io/docs/commands/lpushx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lpushx/</guid>
      <description></description>
    </item>
    <item>
      <title>LRANGE</title>
      <link>https://redict.io/docs/commands/lrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lrange/</guid>
      <description></description>
    </item>
    <item>
      <title>LREM</title>
      <link>https://redict.io/docs/commands/lrem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lrem/</guid>
      <description></description>
    </item>
    <item>
      <title>LSET</title>
      <link>https://redict.io/docs/commands/lset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/lset/</guid>
      <description></description>
    </item>
    <item>
      <title>LTRIM</title>
      <link>https://redict.io/docs/commands/ltrim/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/ltrim/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY</title>
      <link>https://redict.io/docs/commands/memory/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY DOCTOR</title>
      <link>https://redict.io/docs/commands/memory-doctor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-doctor/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY HELP</title>
      <link>https://redict.io/docs/commands/memory-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-help/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY MALLOC-STATS</title>
      <link>https://redict.io/docs/commands/memory-malloc-stats/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-malloc-stats/</guid>
      <description></description>
    </item>
    <item>
      <title>Memory optimization</title>
      <link>https://redict.io/docs/usage/optimization/memory-optimization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/optimization/memory-optimization/</guid>
      <description>&lt;h1 id=&#34;strategies-for-optimizing-memory-usage-in-redict&#34;&gt;&#xA;  Strategies for Optimizing Memory Usage in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#strategies-for-optimizing-memory-usage-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;special-encoding-of-small-aggregate-data-types&#34;&gt;&#xA;  Special encoding of small aggregate data types&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#special-encoding-of-small-aggregate-data-types&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Many data types are optimized to use less space up to a certain size.  Hashes,&#xA;Lists, Sets composed of just integers, and Sorted Sets, when smaller than a&#xA;given number of elements, and up to a maximum element size, are encoded in a&#xA;very memory-efficient way that uses &lt;em&gt;up to 10 times less memory&lt;/em&gt; (with 5 times&#xA;less memory used being the average saving).&lt;/p&gt;</description>
    </item>
    <item>
      <title>MEMORY PURGE</title>
      <link>https://redict.io/docs/commands/memory-purge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-purge/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY STATS</title>
      <link>https://redict.io/docs/commands/memory-stats/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-stats/</guid>
      <description></description>
    </item>
    <item>
      <title>MEMORY USAGE</title>
      <link>https://redict.io/docs/commands/memory-usage/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/memory-usage/</guid>
      <description></description>
    </item>
    <item>
      <title>MGET</title>
      <link>https://redict.io/docs/commands/mget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/mget/</guid>
      <description></description>
    </item>
    <item>
      <title>Example: Microblogging</title>
      <link>https://redict.io/docs/usage/microblogging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/microblogging/</guid>
      <description>&lt;h1 id=&#34;example-microblogging&#34;&gt;&#xA;  Example: Microblogging&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#example-microblogging&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This article describes the design and implementation of a &lt;a href=&#34;https://github.com/antirez/retwis&#34;&gt;very simple Microblogging Platform&lt;/a&gt; written using PHP with Redict as the only database. The programming community has traditionally considered key-value stores as a special purpose database that couldn&amp;rsquo;t be used as a drop-in replacement for a relational database for the development of web applications. This article will try to show that Redict data structures on top of a key-value layer are an effective data model to implement many kinds of applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MIGRATE</title>
      <link>https://redict.io/docs/commands/migrate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/migrate/</guid>
      <description></description>
    </item>
    <item>
      <title>Migrating Lua scripts</title>
      <link>https://redict.io/docs/redis-compat/lua/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/redis-compat/lua/</guid>
      <description>&lt;h1 id=&#34;migrating-lua-scripts&#34;&gt;&#xA;  Migrating Lua scripts&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#migrating-lua-scripts&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is backwards-compatible with the Lua API used by Redis®&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; OSS&#xA;7.2.4, and all Lua scripts targetting this version of Redis® will work with&#xA;Redict without changes.&lt;/p&gt;&#xA;&lt;p&gt;If you wish to update your Lua scripts to remove references to Redis®, you&#xA;may simply substitute the &amp;ldquo;redis&amp;rdquo; global for &amp;ldquo;redict&amp;rdquo;, for instance by changing&#xA;&amp;ldquo;redis.call&amp;rdquo; to &amp;ldquo;redict.call&amp;rdquo;.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;: Changing &amp;ldquo;redis&amp;rdquo; to &amp;ldquo;redict&amp;rdquo; in your Lua scripts will change the SHA-1&#xA;checksum of your script, which in turn will affect the hash you use with the&#xA;&lt;a href=&#34;https://redict.io/docs/commands/evalsha&#34;&gt;EVALSHA&lt;/a&gt; and &lt;a href=&#34;https://redict.io/docs/commands/evalsha_ro&#34;&gt;EVALSHA_RO&lt;/a&gt;&#xA;commands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating Redis® Modules</title>
      <link>https://redict.io/docs/redis-compat/modules/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/redis-compat/modules/</guid>
      <description>&lt;h1 id=&#34;migrating-redis-modules-to-the-redict-api&#34;&gt;&#xA;  Migrating Redis® Modules to the Redict API&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#migrating-redis-modules-to-the-redict-api&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict is binary compatible with Redis® Modules targetting Redis® OSS&#xA;versions 7.2.4 and earlier. Modules built against &lt;code&gt;redismodule.h&lt;/code&gt; may be loaded&#xA;as a shared object via the &lt;code&gt;loadmodule&lt;/code&gt; config option and &lt;code&gt;--loadmodule&lt;/code&gt;&#xA;command-line argument to &lt;code&gt;redict-server&lt;/code&gt; in the same manner with which they are&#xA;used with &lt;code&gt;redis-server&lt;/code&gt;, without changes to the module source code.&lt;/p&gt;&#xA;&lt;p&gt;If you are the maintainer of a Redis® Module and wish to migrate your module&#xA;to target the Redict API instead, the following changes are required:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating to hiredict</title>
      <link>https://redict.io/docs/redis-compat/hiredict/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/redis-compat/hiredict/</guid>
      <description>&lt;h1 id=&#34;compatibility-with-hiredis&#34;&gt;&#xA;  Compatibility with Hiredis&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#compatibility-with-hiredis&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://codeberg.org/redict/hiredict&#34;&gt;Hiredict&lt;/a&gt; includes shim headers, that&#xA;define the old symbols as the new ones, and also a shim pkg-config file adjusted&#xA;to include shims and link with hiredict.&lt;/p&gt;&#xA;&lt;p&gt;Build systems utilizing pkg-config need just rebuild to link against hiredict,&#xA;the shim will make sure the right symbols are used.&lt;/p&gt;&#xA;&lt;p&gt;Build systems that manually look for hiredis, may need to change the library&#xA;name, as we don&amp;rsquo;t provide libhiredis, so calls to find_library need to be&#xA;adjusted to look for &lt;code&gt;hiredict&lt;/code&gt; instead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MODULE</title>
      <link>https://redict.io/docs/commands/module/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module/</guid>
      <description></description>
    </item>
    <item>
      <title>MODULE HELP</title>
      <link>https://redict.io/docs/commands/module-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module-help/</guid>
      <description></description>
    </item>
    <item>
      <title>MODULE LIST</title>
      <link>https://redict.io/docs/commands/module-list/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module-list/</guid>
      <description></description>
    </item>
    <item>
      <title>MODULE LOAD</title>
      <link>https://redict.io/docs/commands/module-load/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module-load/</guid>
      <description></description>
    </item>
    <item>
      <title>MODULE LOADEX</title>
      <link>https://redict.io/docs/commands/module-loadex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module-loadex/</guid>
      <description></description>
    </item>
    <item>
      <title>MODULE UNLOAD</title>
      <link>https://redict.io/docs/commands/module-unload/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/module-unload/</guid>
      <description></description>
    </item>
    <item>
      <title>MONITOR</title>
      <link>https://redict.io/docs/commands/monitor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/monitor/</guid>
      <description></description>
    </item>
    <item>
      <title>MOVE</title>
      <link>https://redict.io/docs/commands/move/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/move/</guid>
      <description></description>
    </item>
    <item>
      <title>MSET</title>
      <link>https://redict.io/docs/commands/mset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/mset/</guid>
      <description></description>
    </item>
    <item>
      <title>MSETNX</title>
      <link>https://redict.io/docs/commands/msetnx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/msetnx/</guid>
      <description></description>
    </item>
    <item>
      <title>MULTI</title>
      <link>https://redict.io/docs/commands/multi/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/multi/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT</title>
      <link>https://redict.io/docs/commands/object/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT ENCODING</title>
      <link>https://redict.io/docs/commands/object-encoding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object-encoding/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT FREQ</title>
      <link>https://redict.io/docs/commands/object-freq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object-freq/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT HELP</title>
      <link>https://redict.io/docs/commands/object-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object-help/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT IDLETIME</title>
      <link>https://redict.io/docs/commands/object-idletime/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object-idletime/</guid>
      <description></description>
    </item>
    <item>
      <title>OBJECT REFCOUNT</title>
      <link>https://redict.io/docs/commands/object-refcount/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/object-refcount/</guid>
      <description></description>
    </item>
    <item>
      <title>PERSIST</title>
      <link>https://redict.io/docs/commands/persist/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/persist/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict persistence</title>
      <link>https://redict.io/docs/usage/persistence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/persistence/</guid>
      <description>&lt;h1 id=&#34;how-redict-writes-data-to-disk&#34;&gt;&#xA;  How Redict Writes Data to Disk&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-redict-writes-data-to-disk&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Persistence refers to the writing of data to durable storage, such as a solid-state disk (SSD). Redict provides a range of persistence options. These include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;RDB&lt;/strong&gt; (Redict Database): RDB persistence performs point-in-time snapshots of your dataset at specified intervals.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;AOF&lt;/strong&gt; (Append Only File): AOF persistence logs every write operation received by the server. These operations can then be replayed again at server startup, reconstructing the original dataset. Commands are logged using the same format as the Redict protocol itself.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;No persistence&lt;/strong&gt;: You can disable persistence completely. This is sometimes used when caching.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RDB + AOF&lt;/strong&gt;: You can also combine both AOF and RDB in the same instance.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;To learn more about how to evaluate your Redict persistence strategy, read on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PEXPIRE</title>
      <link>https://redict.io/docs/commands/pexpire/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pexpire/</guid>
      <description></description>
    </item>
    <item>
      <title>PEXPIREAT</title>
      <link>https://redict.io/docs/commands/pexpireat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pexpireat/</guid>
      <description></description>
    </item>
    <item>
      <title>PEXPIRETIME</title>
      <link>https://redict.io/docs/commands/pexpiretime/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pexpiretime/</guid>
      <description></description>
    </item>
    <item>
      <title>PFADD</title>
      <link>https://redict.io/docs/commands/pfadd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pfadd/</guid>
      <description></description>
    </item>
    <item>
      <title>PFCOUNT</title>
      <link>https://redict.io/docs/commands/pfcount/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pfcount/</guid>
      <description></description>
    </item>
    <item>
      <title>PFDEBUG</title>
      <link>https://redict.io/docs/commands/pfdebug/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pfdebug/</guid>
      <description></description>
    </item>
    <item>
      <title>PFMERGE</title>
      <link>https://redict.io/docs/commands/pfmerge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pfmerge/</guid>
      <description></description>
    </item>
    <item>
      <title>PFSELFTEST</title>
      <link>https://redict.io/docs/commands/pfselftest/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pfselftest/</guid>
      <description></description>
    </item>
    <item>
      <title>PING</title>
      <link>https://redict.io/docs/commands/ping/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/ping/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict Pipelining</title>
      <link>https://redict.io/docs/usage/pipelining/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/pipelining/</guid>
      <description>&lt;h1 id=&#34;redict-pipelining&#34;&gt;&#xA;  Redict Pipelining&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-pipelining&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict pipelining is a technique for improving performance by issuing multiple commands at once without waiting for the response to each individual command. Pipelining is supported by most Redict clients. This document describes the problem that pipelining is designed to solve and how pipelining works in Redict.&lt;/p&gt;&#xA;&lt;h2 id=&#34;requestresponse-protocols-and-round-trip-time-rtt&#34;&gt;&#xA;  Request/Response protocols and round-trip time (RTT)&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#requestresponse-protocols-and-round-trip-time-rtt&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Redict is a TCP server using the client-server model and what is called a &lt;em&gt;Request/Response&lt;/em&gt; protocol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PSETEX</title>
      <link>https://redict.io/docs/commands/psetex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/psetex/</guid>
      <description></description>
    </item>
    <item>
      <title>PSUBSCRIBE</title>
      <link>https://redict.io/docs/commands/psubscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/psubscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>PSYNC</title>
      <link>https://redict.io/docs/commands/psync/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/psync/</guid>
      <description></description>
    </item>
    <item>
      <title>PTTL</title>
      <link>https://redict.io/docs/commands/pttl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pttl/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict Pub/Sub</title>
      <link>https://redict.io/docs/usage/pubsub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/pubsub/</guid>
      <description>&lt;h1 id=&#34;how-to-use-pubsub-channels-in-redict&#34;&gt;&#xA;  How to Use Pub/Sub Channels in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-to-use-pubsub-channels-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;code&gt;SUBSCRIBE&lt;/code&gt;, &lt;code&gt;UNSUBSCRIBE&lt;/code&gt; and &lt;code&gt;PUBLISH&lt;/code&gt; implement the &lt;a href=&#34;http://en.wikipedia.org/wiki/Publish/subscribe&#34;&gt;Publish/Subscribe messaging paradigm&lt;/a&gt; where (citing Wikipedia) senders (publishers) are not programmed to send their messages to specific receivers (subscribers).&#xA;Rather, published messages are characterized into channels, without knowledge of what (if any) subscribers there may be.&#xA;Subscribers express interest in one or more channels and only receive messages that are of interest, without knowledge of what (if any) publishers there are.&#xA;This decoupling of publishers and subscribers allows for greater scalability and a more dynamic network topology.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PUBLISH</title>
      <link>https://redict.io/docs/commands/publish/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/publish/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB</title>
      <link>https://redict.io/docs/commands/pubsub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB CHANNELS</title>
      <link>https://redict.io/docs/commands/pubsub-channels/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-channels/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB HELP</title>
      <link>https://redict.io/docs/commands/pubsub-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-help/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB NUMPAT</title>
      <link>https://redict.io/docs/commands/pubsub-numpat/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-numpat/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB NUMSUB</title>
      <link>https://redict.io/docs/commands/pubsub-numsub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-numsub/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB SHARDCHANNELS</title>
      <link>https://redict.io/docs/commands/pubsub-shardchannels/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-shardchannels/</guid>
      <description></description>
    </item>
    <item>
      <title>PUBSUB SHARDNUMSUB</title>
      <link>https://redict.io/docs/commands/pubsub-shardnumsub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/pubsub-shardnumsub/</guid>
      <description></description>
    </item>
    <item>
      <title>PUNSUBSCRIBE</title>
      <link>https://redict.io/docs/commands/punsubscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/punsubscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>QUIT</title>
      <link>https://redict.io/docs/commands/quit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/quit/</guid>
      <description></description>
    </item>
    <item>
      <title>RANDOMKEY</title>
      <link>https://redict.io/docs/commands/randomkey/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/randomkey/</guid>
      <description></description>
    </item>
    <item>
      <title>READONLY</title>
      <link>https://redict.io/docs/commands/readonly/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/readonly/</guid>
      <description></description>
    </item>
    <item>
      <title>READWRITE</title>
      <link>https://redict.io/docs/commands/readwrite/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/readwrite/</guid>
      <description></description>
    </item>
    <item>
      <title>RENAME</title>
      <link>https://redict.io/docs/commands/rename/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/rename/</guid>
      <description></description>
    </item>
    <item>
      <title>RENAMENX</title>
      <link>https://redict.io/docs/commands/renamenx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/renamenx/</guid>
      <description></description>
    </item>
    <item>
      <title>REPLCONF</title>
      <link>https://redict.io/docs/commands/replconf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/replconf/</guid>
      <description></description>
    </item>
    <item>
      <title>REPLICAOF</title>
      <link>https://redict.io/docs/commands/replicaof/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/replicaof/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict replication</title>
      <link>https://redict.io/docs/usage/replication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/replication/</guid>
      <description>&lt;h1 id=&#34;how-redict-supports-high-availability-and-failover-with-replication&#34;&gt;&#xA;  How Redict supports high availability and failover with replication&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-redict-supports-high-availability-and-failover-with-replication&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;At the base of Redict replication (excluding the high availability features provided as an additional layer by Redict Cluster or Redict Sentinel) there is a &lt;em&gt;leader follower&lt;/em&gt; (master-replica) replication that is simple to use and configure. It allows replica Redict instances to be exact copies of master instances. The replica will automatically reconnect to the master every time the link breaks, and will attempt to be an exact copy of it &lt;em&gt;regardless&lt;/em&gt; of what happens to the master.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RESET</title>
      <link>https://redict.io/docs/commands/reset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/reset/</guid>
      <description></description>
    </item>
    <item>
      <title>RESTORE</title>
      <link>https://redict.io/docs/commands/restore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/restore/</guid>
      <description></description>
    </item>
    <item>
      <title>RESTORE-ASKING</title>
      <link>https://redict.io/docs/commands/restore-asking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/restore-asking/</guid>
      <description></description>
    </item>
    <item>
      <title>ROLE</title>
      <link>https://redict.io/docs/commands/role/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/role/</guid>
      <description></description>
    </item>
    <item>
      <title>RPOP</title>
      <link>https://redict.io/docs/commands/rpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/rpop/</guid>
      <description></description>
    </item>
    <item>
      <title>RPOPLPUSH</title>
      <link>https://redict.io/docs/commands/rpoplpush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/rpoplpush/</guid>
      <description></description>
    </item>
    <item>
      <title>RPUSH</title>
      <link>https://redict.io/docs/commands/rpush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/rpush/</guid>
      <description></description>
    </item>
    <item>
      <title>RPUSHX</title>
      <link>https://redict.io/docs/commands/rpushx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/rpushx/</guid>
      <description></description>
    </item>
    <item>
      <title>SADD</title>
      <link>https://redict.io/docs/commands/sadd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sadd/</guid>
      <description></description>
    </item>
    <item>
      <title>SAVE</title>
      <link>https://redict.io/docs/commands/save/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/save/</guid>
      <description></description>
    </item>
    <item>
      <title>SCAN</title>
      <link>https://redict.io/docs/commands/scan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/scan/</guid>
      <description></description>
    </item>
    <item>
      <title>SCARD</title>
      <link>https://redict.io/docs/commands/scard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/scard/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT</title>
      <link>https://redict.io/docs/commands/script/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT DEBUG</title>
      <link>https://redict.io/docs/commands/script-debug/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-debug/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT EXISTS</title>
      <link>https://redict.io/docs/commands/script-exists/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-exists/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT FLUSH</title>
      <link>https://redict.io/docs/commands/script-flush/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-flush/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT HELP</title>
      <link>https://redict.io/docs/commands/script-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-help/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT KILL</title>
      <link>https://redict.io/docs/commands/script-kill/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-kill/</guid>
      <description></description>
    </item>
    <item>
      <title>SCRIPT LOAD</title>
      <link>https://redict.io/docs/commands/script-load/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/script-load/</guid>
      <description></description>
    </item>
    <item>
      <title>SDIFF</title>
      <link>https://redict.io/docs/commands/sdiff/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sdiff/</guid>
      <description></description>
    </item>
    <item>
      <title>SDIFFSTORE</title>
      <link>https://redict.io/docs/commands/sdiffstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sdiffstore/</guid>
      <description></description>
    </item>
    <item>
      <title>SELECT</title>
      <link>https://redict.io/docs/commands/select/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/select/</guid>
      <description></description>
    </item>
    <item>
      <title>High availability with Redict Sentinel</title>
      <link>https://redict.io/docs/usage/sentinel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/sentinel/</guid>
      <description>&lt;p&gt;Redict Sentinel provides high availability for Redict when not using &lt;a href=&#34;https://redict.io/docs/usage/scaling&#34;&gt;Redict Cluster&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Redict Sentinel also provides other collateral tasks such as monitoring,&#xA;notifications and acts as a configuration provider for clients.&lt;/p&gt;&#xA;&lt;p&gt;This is the full list of Sentinel capabilities at a macroscopic level (i.e. the &lt;em&gt;big picture&lt;/em&gt;):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Monitoring&lt;/strong&gt;. Sentinel constantly checks if your master and replica instances are working as expected.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Notification&lt;/strong&gt;. Sentinel can notify the system administrator, or other computer programs, via an API, that something is wrong with one of the monitored Redict instances.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automatic failover&lt;/strong&gt;. If a master is not working as expected, Sentinel can start a failover process where a replica is promoted to master, the other additional replicas are reconfigured to use the new master, and the applications using the Redict server are informed about the new address to use when connecting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Configuration provider&lt;/strong&gt;. Sentinel acts as a source of authority for clients service discovery: clients connect to Sentinels in order to ask for the address of the current Redict master responsible for a given service. If a failover occurs, Sentinels will report the new address.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sentinel-as-a-distributed-system&#34;&gt;&#xA;  Sentinel as a distributed system&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#sentinel-as-a-distributed-system&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Redict Sentinel is a distributed system:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sentinel client spec</title>
      <link>https://redict.io/docs/usage/clients/sentinel-clients/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/clients/sentinel-clients/</guid>
      <description>&lt;h1 id=&#34;how-to-build-clients-for-redict-sentinel&#34;&gt;&#xA;  How to build clients for Redict Sentinel&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-to-build-clients-for-redict-sentinel&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict Sentinel is a monitoring solution for Redict instances that handles&#xA;automatic failover of Redict masters and service discovery (who is the current&#xA;master for a given group of instances?). Since Sentinel is both responsible&#xA;for reconfiguring instances during failovers, and providing configurations to&#xA;clients connecting to Redict masters or replicas, clients are required to have&#xA;explicit support for Redict Sentinel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SET</title>
      <link>https://redict.io/docs/commands/set/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/set/</guid>
      <description></description>
    </item>
    <item>
      <title>SETBIT</title>
      <link>https://redict.io/docs/commands/setbit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/setbit/</guid>
      <description></description>
    </item>
    <item>
      <title>SETEX</title>
      <link>https://redict.io/docs/commands/setex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/setex/</guid>
      <description></description>
    </item>
    <item>
      <title>SETNX</title>
      <link>https://redict.io/docs/commands/setnx/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/setnx/</guid>
      <description></description>
    </item>
    <item>
      <title>SETRANGE</title>
      <link>https://redict.io/docs/commands/setrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/setrange/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict sets</title>
      <link>https://redict.io/docs/data-types/sets/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/sets/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-sets&#34;&gt;&#xA;  Introduction to Redict Sets&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-sets&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;A Redict set is an unordered collection of unique strings (members).&#xA;You can use Redict sets to efficiently:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Track unique items (e.g., track all unique IP addresses accessing a given blog post).&lt;/li&gt;&#xA;&lt;li&gt;Represent relations (e.g., the set of all users with a given role).&lt;/li&gt;&#xA;&lt;li&gt;Perform common set operations such as intersection, unions, and differences.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;basic-commands&#34;&gt;&#xA;  Basic commands&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#basic-commands&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;SADD&lt;/code&gt; adds a new member to a set.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;SREM&lt;/code&gt; removes the specified member from the set.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;SISMEMBER&lt;/code&gt; tests a string for set membership.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;SINTER&lt;/code&gt; returns the set of members that two or more sets have in common (i.e., the intersection).&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;SCARD&lt;/code&gt; returns the size (a.k.a. cardinality) of a set.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;See the &lt;a href=&#34;https://redict.io/docs/commands/#set&#34;&gt;complete list of set commands&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup Tips</title>
      <link>https://redict.io/docs/usage/admin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/admin/</guid>
      <description>&lt;h1 id=&#34;redict-setup-tips&#34;&gt;&#xA;  Redict Setup Tips&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-setup-tips&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;linux&#34;&gt;&#xA;  Linux&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#linux&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Deploy Redict using the Linux operating system. Redict is also tested on OS X, and from time to time on FreeBSD and OpenBSD systems. However, Linux is where most of the stress testing is performed, and where most production deployments are run.&lt;/li&gt;&#xA;&lt;li&gt;Set the Linux kernel overcommit memory setting to 1. Add &lt;code&gt;vm.overcommit_memory = 1&lt;/code&gt; to &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;. Then, reboot or run the command &lt;code&gt;sysctl vm.overcommit_memory=1&lt;/code&gt; to activate the setting. See &lt;a href=&#34;https://redict.io/docs/usage/faq/#background-saving-fails-with-a-fork-error-on-linux&#34;&gt;FAQ: Background saving fails with a fork() error on Linux?&lt;/a&gt; for details.&lt;/li&gt;&#xA;&lt;li&gt;To ensure the Linux kernel feature Transparent Huge Pages does not impact Redict memory usage and latency, run the command: &lt;code&gt;echo never &amp;gt; /sys/kernel/mm/transparent_hugepage/enabled&lt;/code&gt; to disable it. See &lt;a href=&#34;https://redict.io/docs/usage/optimization/latency/#latency-induced-by-transparent-huge-pages&#34;&gt;Latency Diagnosis - Latency induced by transparent huge pages&lt;/a&gt; for additional context.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;memory&#34;&gt;&#xA;  Memory&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#memory&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Ensured that swap is enabled and that your swap file size is equal to amount of memory on your system. If Linux does not have swap set up, and your Redict instance accidentally consumes too much memory, Redict can crash when it is out of memory, or the Linux kernel OOM killer can kill the Redict process. When swapping is enabled, you can detect latency spikes and act on them.&lt;/li&gt;&#xA;&lt;li&gt;Set an explicit &lt;code&gt;maxmemory&lt;/code&gt; option limit in your instance to make sure that it will report errors instead of failing when the system memory limit is near to be reached. Note that &lt;code&gt;maxmemory&lt;/code&gt; should be set by calculating the overhead for Redict, other than data, and the fragmentation overhead. So if you think you have 10 GB of free memory, set it to 8 or 9.&lt;/li&gt;&#xA;&lt;li&gt;If you are using Redict in a write-heavy application, while saving an RDB file on disk or rewriting the AOF log, Redict can use up to 2 times the memory normally used. The additional memory used is proportional to the number of memory pages modified by writes during the saving process, so it is often proportional to the number of keys (or aggregate types items) touched during this time. Make sure to size your memory accordingly.&lt;/li&gt;&#xA;&lt;li&gt;See the &lt;code&gt;LATENCY DOCTOR&lt;/code&gt; and &lt;code&gt;MEMORY DOCTOR&lt;/code&gt; commands to assist in troubleshooting.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;imaging&#34;&gt;&#xA;  Imaging&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#imaging&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When running under daemontools, use &lt;code&gt;daemonize no&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;replication&#34;&gt;&#xA;  Replication&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#replication&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set up a non-trivial replication backlog in proportion to the amount of memory Redict is using. The backlog allows replicas to sync with the primary (master) instance much more easily.&lt;/li&gt;&#xA;&lt;li&gt;If you use replication, Redict performs RDB saves even if persistence is disabled. (This does not apply to diskless replication.) If you don&amp;rsquo;t have disk usage on the master, enable diskless replication.&lt;/li&gt;&#xA;&lt;li&gt;If you are using replication, ensure that either your master has persistence enabled, or that it does not automatically restart on crashes. Replicas will try to maintain an exact copy of the master, so if a master restarts with an empty data set, replicas will be wiped as well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;security&#34;&gt;&#xA;  Security&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#security&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;By default, Redict does not require any authentication and listens to all the network interfaces. This is a big security issue if you leave Redict exposed on the internet or other places where attackers can reach it. See for example &lt;a href=&#34;http://antirez.com/news/96&#34;&gt;this attack&lt;/a&gt; to see how dangerous it can be. Please check our &lt;a href=&#34;https://redict.io/docs/usage/security/&#34;&gt;security page&lt;/a&gt; for information about how to secure Redict.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;running-redict-on-ec2&#34;&gt;&#xA;  Running Redict on EC2&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#running-redict-on-ec2&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use HVM based instances, not PV based instances.&lt;/li&gt;&#xA;&lt;li&gt;Do not use old instance families. For example, use m3.medium with HVM instead of m1.medium with PV.&lt;/li&gt;&#xA;&lt;li&gt;The use of Redict persistence with EC2 EBS volumes needs to be handled with care because sometimes EBS volumes have high latency characteristics.&lt;/li&gt;&#xA;&lt;li&gt;You may want to try the new diskless replication if you have issues when replicas are synchronizing with the master.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upgrading-or-restarting-a-redict-instance-without-downtime&#34;&gt;&#xA;  Upgrading or restarting a Redict instance without downtime&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#upgrading-or-restarting-a-redict-instance-without-downtime&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Redict is designed to be a long-running process in your server. You can modify many configuration options without a restart using the &lt;code&gt;CONFIG SET&lt;/code&gt; command. You can also switch from AOF to RDB snapshots persistence, or the other way around, without restarting Redict. Check the output of the &lt;code&gt;CONFIG GET *&lt;/code&gt; command for more information.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SHUTDOWN</title>
      <link>https://redict.io/docs/commands/shutdown/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/shutdown/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict signal handling</title>
      <link>https://redict.io/docs/usage/signals/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/signals/</guid>
      <description>&lt;h1 id=&#34;how-redict-handles-common-unix-signals&#34;&gt;&#xA;  How Redict Handles Common Unix Signals&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-redict-handles-common-unix-signals&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This document provides information about how Redict reacts to different POSIX signals such as &lt;code&gt;SIGTERM&lt;/code&gt; and &lt;code&gt;SIGSEGV&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sigterm-and-sigint&#34;&gt;&#xA;  SIGTERM and SIGINT&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#sigterm-and-sigint&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;SIGTERM&lt;/code&gt; and &lt;code&gt;SIGINT&lt;/code&gt; signals tell Redict to shut down gracefully. When the server receives this signal,&#xA;it does not immediately exit. Instead, it schedules&#xA;a shutdown similar to the one performed by the &lt;code&gt;SHUTDOWN&lt;/code&gt; command. The scheduled shutdown starts as soon as possible, specifically as long as the&#xA;current command in execution terminates (if any), with a possible additional&#xA;delay of 0.1 seconds or less.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SINTER</title>
      <link>https://redict.io/docs/commands/sinter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sinter/</guid>
      <description></description>
    </item>
    <item>
      <title>SINTERCARD</title>
      <link>https://redict.io/docs/commands/sintercard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sintercard/</guid>
      <description></description>
    </item>
    <item>
      <title>SINTERSTORE</title>
      <link>https://redict.io/docs/commands/sinterstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sinterstore/</guid>
      <description></description>
    </item>
    <item>
      <title>SISMEMBER</title>
      <link>https://redict.io/docs/commands/sismember/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sismember/</guid>
      <description></description>
    </item>
    <item>
      <title>SLAVEOF</title>
      <link>https://redict.io/docs/commands/slaveof/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slaveof/</guid>
      <description></description>
    </item>
    <item>
      <title>SLOWLOG</title>
      <link>https://redict.io/docs/commands/slowlog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slowlog/</guid>
      <description></description>
    </item>
    <item>
      <title>SLOWLOG GET</title>
      <link>https://redict.io/docs/commands/slowlog-get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slowlog-get/</guid>
      <description></description>
    </item>
    <item>
      <title>SLOWLOG HELP</title>
      <link>https://redict.io/docs/commands/slowlog-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slowlog-help/</guid>
      <description></description>
    </item>
    <item>
      <title>SLOWLOG LEN</title>
      <link>https://redict.io/docs/commands/slowlog-len/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slowlog-len/</guid>
      <description></description>
    </item>
    <item>
      <title>SLOWLOG RESET</title>
      <link>https://redict.io/docs/commands/slowlog-reset/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/slowlog-reset/</guid>
      <description></description>
    </item>
    <item>
      <title>SMEMBERS</title>
      <link>https://redict.io/docs/commands/smembers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/smembers/</guid>
      <description></description>
    </item>
    <item>
      <title>SMISMEMBER</title>
      <link>https://redict.io/docs/commands/smismember/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/smismember/</guid>
      <description></description>
    </item>
    <item>
      <title>SMOVE</title>
      <link>https://redict.io/docs/commands/smove/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/smove/</guid>
      <description></description>
    </item>
    <item>
      <title>SORT</title>
      <link>https://redict.io/docs/commands/sort/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sort/</guid>
      <description></description>
    </item>
    <item>
      <title>SORT_RO</title>
      <link>https://redict.io/docs/commands/sort_ro/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sort_ro/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict sorted sets</title>
      <link>https://redict.io/docs/data-types/sorted-sets/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/sorted-sets/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-sorted-sets&#34;&gt;&#xA;  Introduction to Redict Sorted Sets&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-sorted-sets&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;A Redict sorted set is a collection of unique strings (members) ordered by an associated score.&#xA;When more than one string has the same score, the strings are ordered lexicographically.&#xA;Some use cases for sorted sets include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Leaderboards. For example, you can use sorted sets to easily maintain  ordered lists of the highest scores in a massive online game.&lt;/li&gt;&#xA;&lt;li&gt;Rate limiters. In particular, you can use a sorted set to build a sliding-window rate limiter to prevent excessive API requests.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;You can think of sorted sets as a mix between a Set and&#xA;a Hash. Like sets, sorted sets are composed of unique, non-repeating&#xA;string elements, so in some sense a sorted set is a set as well.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SPOP</title>
      <link>https://redict.io/docs/commands/spop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/spop/</guid>
      <description></description>
    </item>
    <item>
      <title>SPUBLISH</title>
      <link>https://redict.io/docs/commands/spublish/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/spublish/</guid>
      <description></description>
    </item>
    <item>
      <title>SRANDMEMBER</title>
      <link>https://redict.io/docs/commands/srandmember/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/srandmember/</guid>
      <description></description>
    </item>
    <item>
      <title>SREM</title>
      <link>https://redict.io/docs/commands/srem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/srem/</guid>
      <description></description>
    </item>
    <item>
      <title>SSCAN</title>
      <link>https://redict.io/docs/commands/sscan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sscan/</guid>
      <description></description>
    </item>
    <item>
      <title>SSUBSCRIBE</title>
      <link>https://redict.io/docs/commands/ssubscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/ssubscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict Streams</title>
      <link>https://redict.io/docs/data-types/streams/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/streams/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-streams&#34;&gt;&#xA;  Introduction to Redict Streams&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-streams&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;A Redict stream is a data structure that acts like an append-only log but also implements several operations to overcome some of the limits of a typical append-only log. These include random access in O(1) time and complex consumption strategies, such as consumer groups.&#xA;You can use streams to record and simultaneously syndicate events in real time.&#xA;Examples of Redict stream use cases include:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Redict Strings</title>
      <link>https://redict.io/docs/data-types/strings/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/data-types/strings/</guid>
      <description>&lt;h1 id=&#34;introduction-to-redict-strings&#34;&gt;&#xA;  Introduction to Redict Strings&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introduction-to-redict-strings&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict strings store sequences of bytes, including text, serialized objects, and binary arrays.&#xA;As such, strings are the simplest type of value you can associate with&#xA;a Redict key.&#xA;They&amp;rsquo;re often used for caching, but they support additional functionality that lets you implement counters and perform bitwise operations, too.&lt;/p&gt;&#xA;&lt;p&gt;Since Redict keys are strings, when we use the string type as a value too,&#xA;we are mapping a string to another string. The string data type is useful&#xA;for a number of use cases, like caching HTML fragments or pages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>STRLEN</title>
      <link>https://redict.io/docs/commands/strlen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/strlen/</guid>
      <description></description>
    </item>
    <item>
      <title>SUBSCRIBE</title>
      <link>https://redict.io/docs/commands/subscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/subscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>SUBSTR</title>
      <link>https://redict.io/docs/commands/substr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/substr/</guid>
      <description></description>
    </item>
    <item>
      <title>SUNION</title>
      <link>https://redict.io/docs/commands/sunion/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sunion/</guid>
      <description></description>
    </item>
    <item>
      <title>SUNIONSTORE</title>
      <link>https://redict.io/docs/commands/sunionstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sunionstore/</guid>
      <description></description>
    </item>
    <item>
      <title>SUNSUBSCRIBE</title>
      <link>https://redict.io/docs/commands/sunsubscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sunsubscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>SWAPDB</title>
      <link>https://redict.io/docs/commands/swapdb/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/swapdb/</guid>
      <description></description>
    </item>
    <item>
      <title>SYNC</title>
      <link>https://redict.io/docs/commands/sync/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/sync/</guid>
      <description></description>
    </item>
    <item>
      <title>TIME</title>
      <link>https://redict.io/docs/commands/time/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/time/</guid>
      <description></description>
    </item>
    <item>
      <title>TLS</title>
      <link>https://redict.io/docs/usage/security/encryption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/security/encryption/</guid>
      <description>&lt;h1 id=&#34;redict-tls-support&#34;&gt;&#xA;  Redict TLS Support&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-tls-support&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;SSL/TLS is supported by Redict as an optional feature that needs to be enabled&#xA;at compile time.&lt;/p&gt;&#xA;&lt;h2 id=&#34;getting-started&#34;&gt;&#xA;  Getting Started&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#getting-started&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;building&#34;&gt;&#xA;  Building&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#building&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;To build with TLS support you&amp;rsquo;ll need OpenSSL development libraries (e.g.&#xA;&lt;code&gt;libssl-dev&lt;/code&gt; on Debian/Ubuntu).&lt;/p&gt;&#xA;&lt;p&gt;Build Redict with the following command:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make BUILD_TLS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;yes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;tests&#34;&gt;&#xA;  Tests&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#tests&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;To run Redict test suite with TLS, you&amp;rsquo;ll need TLS support for TCL (i.e.&#xA;&lt;code&gt;tcl-tls&lt;/code&gt; package on Debian/Ubuntu).&lt;/p&gt;</description>
    </item>
    <item>
      <title>TOUCH</title>
      <link>https://redict.io/docs/commands/touch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/touch/</guid>
      <description></description>
    </item>
    <item>
      <title>Redict Transactions</title>
      <link>https://redict.io/docs/usage/transactions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/transactions/</guid>
      <description>&lt;h1 id=&#34;how-transactions-work-in-redict&#34;&gt;&#xA;  How Transactions Work in Redict&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#how-transactions-work-in-redict&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Redict Transactions allow the execution of a group of commands&#xA;in a single step, they are centered around the commands&#xA;&lt;code&gt;MULTI&lt;/code&gt;, &lt;code&gt;EXEC&lt;/code&gt;, &lt;code&gt;DISCARD&lt;/code&gt; and &lt;code&gt;WATCH&lt;/code&gt;.&#xA;Redict Transactions make two important guarantees:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;All the commands in a transaction are serialized and executed&#xA;sequentially. A request sent by another client will never be&#xA;served &lt;strong&gt;in the middle&lt;/strong&gt; of the execution of a Redict Transaction.&#xA;This guarantees that the commands are executed as a single&#xA;isolated operation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Redict</title>
      <link>https://redict.io/docs/usage/troubleshooting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/usage/troubleshooting/</guid>
      <description>&lt;h1 id=&#34;troubleshooting&#34;&gt;&#xA;  Troubleshooting&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#troubleshooting&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This page tries to help you with what to do if you have issues with Redict. Part of the Redict project is helping people that are experiencing problems because we don&amp;rsquo;t like to leave people alone with their issues.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If you have &lt;strong&gt;latency problems&lt;/strong&gt; with Redict, that in some way appears to be idle for some time, read our &lt;a href=&#34;https://redict.io/docs/usage/optimization/latency/&#34;&gt;Redis latency troubleshooting guide&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Redis stable releases are usually very reliable, however in the rare event you are &lt;strong&gt;experiencing crashes&lt;/strong&gt; the developers can help a lot more if you provide debugging information. Please read our &lt;a href=&#34;https://redict.io/docs/usage/debugging/&#34;&gt;Debugging Redis guide&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;We have a long history of users experiencing crashes with Redis that actually turned out to be servers with &lt;strong&gt;broken RAM&lt;/strong&gt;. Please test your RAM using &lt;strong&gt;redict-server &amp;ndash;test-memory&lt;/strong&gt; in case Redis is not stable in your system. Redis built-in memory test is fast and reasonably reliable, but if you can you should reboot your server and use &lt;a href=&#34;http://memtest86.com&#34;&gt;memtest86&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For every other problem please drop a message in our Chat. See &lt;a href=&#34;https://redict.io/docs/community/&#34;&gt;Community resources&lt;/a&gt; for details.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TTL</title>
      <link>https://redict.io/docs/commands/ttl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/ttl/</guid>
      <description></description>
    </item>
    <item>
      <title>TYPE</title>
      <link>https://redict.io/docs/commands/type/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/type/</guid>
      <description></description>
    </item>
    <item>
      <title>UNLINK</title>
      <link>https://redict.io/docs/commands/unlink/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/unlink/</guid>
      <description></description>
    </item>
    <item>
      <title>UNSUBSCRIBE</title>
      <link>https://redict.io/docs/commands/unsubscribe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/unsubscribe/</guid>
      <description></description>
    </item>
    <item>
      <title>UNWATCH</title>
      <link>https://redict.io/docs/commands/unwatch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/unwatch/</guid>
      <description></description>
    </item>
    <item>
      <title>Usage with containers</title>
      <link>https://redict.io/docs/install/containers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/install/containers/</guid>
      <description>&lt;h1 id=&#34;redict-containers&#34;&gt;&#xA;  Redict containers&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#redict-containers&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;We provide official containers for Redict from our container registry at&#xA;&lt;code&gt;registry.redict.io&lt;/code&gt;. The source code for our container images is available &lt;a href=&#34;https://codeberg.org/redict/redict-containers&#34;&gt;on&#xA;Codeberg&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;quickstart&#34;&gt;&#xA;  Quickstart&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#quickstart&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To start a Redict server:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ docker run --name redict -d -p 6379:6379 registry.redict.io/redict&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will start a Redict server running on the default port on your local&#xA;system. To interact with the running server with the &lt;code&gt;redict-cli&lt;/code&gt; tool:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ docker exec -it redict /bin/redict-cli&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;available-containers&#34;&gt;&#xA;  Available containers&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#available-containers&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default redict (and redict:latest) containers are scratch containers which&#xA;only contain the Redict executables and the supporting files necessary to run&#xA;them. If you need a more complete container, with a shell and other supporting&#xA;tools, choose Alpine or Debian as your base.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WAIT</title>
      <link>https://redict.io/docs/commands/wait/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/wait/</guid>
      <description></description>
    </item>
    <item>
      <title>WAITAOF</title>
      <link>https://redict.io/docs/commands/waitaof/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/waitaof/</guid>
      <description></description>
    </item>
    <item>
      <title>WATCH</title>
      <link>https://redict.io/docs/commands/watch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/watch/</guid>
      <description></description>
    </item>
    <item>
      <title>XACK</title>
      <link>https://redict.io/docs/commands/xack/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xack/</guid>
      <description></description>
    </item>
    <item>
      <title>XADD</title>
      <link>https://redict.io/docs/commands/xadd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xadd/</guid>
      <description></description>
    </item>
    <item>
      <title>XAUTOCLAIM</title>
      <link>https://redict.io/docs/commands/xautoclaim/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xautoclaim/</guid>
      <description></description>
    </item>
    <item>
      <title>XCLAIM</title>
      <link>https://redict.io/docs/commands/xclaim/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xclaim/</guid>
      <description></description>
    </item>
    <item>
      <title>XDEL</title>
      <link>https://redict.io/docs/commands/xdel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xdel/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP</title>
      <link>https://redict.io/docs/commands/xgroup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP CREATE</title>
      <link>https://redict.io/docs/commands/xgroup-create/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-create/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP CREATECONSUMER</title>
      <link>https://redict.io/docs/commands/xgroup-createconsumer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-createconsumer/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP DELCONSUMER</title>
      <link>https://redict.io/docs/commands/xgroup-delconsumer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-delconsumer/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP DESTROY</title>
      <link>https://redict.io/docs/commands/xgroup-destroy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-destroy/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP HELP</title>
      <link>https://redict.io/docs/commands/xgroup-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-help/</guid>
      <description></description>
    </item>
    <item>
      <title>XGROUP SETID</title>
      <link>https://redict.io/docs/commands/xgroup-setid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xgroup-setid/</guid>
      <description></description>
    </item>
    <item>
      <title>XINFO</title>
      <link>https://redict.io/docs/commands/xinfo/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xinfo/</guid>
      <description></description>
    </item>
    <item>
      <title>XINFO CONSUMERS</title>
      <link>https://redict.io/docs/commands/xinfo-consumers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xinfo-consumers/</guid>
      <description></description>
    </item>
    <item>
      <title>XINFO GROUPS</title>
      <link>https://redict.io/docs/commands/xinfo-groups/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xinfo-groups/</guid>
      <description></description>
    </item>
    <item>
      <title>XINFO HELP</title>
      <link>https://redict.io/docs/commands/xinfo-help/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xinfo-help/</guid>
      <description></description>
    </item>
    <item>
      <title>XINFO STREAM</title>
      <link>https://redict.io/docs/commands/xinfo-stream/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xinfo-stream/</guid>
      <description></description>
    </item>
    <item>
      <title>XLEN</title>
      <link>https://redict.io/docs/commands/xlen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xlen/</guid>
      <description></description>
    </item>
    <item>
      <title>XPENDING</title>
      <link>https://redict.io/docs/commands/xpending/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xpending/</guid>
      <description></description>
    </item>
    <item>
      <title>XRANGE</title>
      <link>https://redict.io/docs/commands/xrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xrange/</guid>
      <description></description>
    </item>
    <item>
      <title>XREAD</title>
      <link>https://redict.io/docs/commands/xread/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xread/</guid>
      <description></description>
    </item>
    <item>
      <title>XREADGROUP</title>
      <link>https://redict.io/docs/commands/xreadgroup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xreadgroup/</guid>
      <description></description>
    </item>
    <item>
      <title>XREVRANGE</title>
      <link>https://redict.io/docs/commands/xrevrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xrevrange/</guid>
      <description></description>
    </item>
    <item>
      <title>XSETID</title>
      <link>https://redict.io/docs/commands/xsetid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xsetid/</guid>
      <description></description>
    </item>
    <item>
      <title>XTRIM</title>
      <link>https://redict.io/docs/commands/xtrim/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/xtrim/</guid>
      <description></description>
    </item>
    <item>
      <title>ZADD</title>
      <link>https://redict.io/docs/commands/zadd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zadd/</guid>
      <description></description>
    </item>
    <item>
      <title>ZCARD</title>
      <link>https://redict.io/docs/commands/zcard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zcard/</guid>
      <description></description>
    </item>
    <item>
      <title>ZCOUNT</title>
      <link>https://redict.io/docs/commands/zcount/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zcount/</guid>
      <description></description>
    </item>
    <item>
      <title>ZDIFF</title>
      <link>https://redict.io/docs/commands/zdiff/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zdiff/</guid>
      <description></description>
    </item>
    <item>
      <title>ZDIFFSTORE</title>
      <link>https://redict.io/docs/commands/zdiffstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zdiffstore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZINCRBY</title>
      <link>https://redict.io/docs/commands/zincrby/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zincrby/</guid>
      <description></description>
    </item>
    <item>
      <title>ZINTER</title>
      <link>https://redict.io/docs/commands/zinter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zinter/</guid>
      <description></description>
    </item>
    <item>
      <title>ZINTERCARD</title>
      <link>https://redict.io/docs/commands/zintercard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zintercard/</guid>
      <description></description>
    </item>
    <item>
      <title>ZINTERSTORE</title>
      <link>https://redict.io/docs/commands/zinterstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zinterstore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZLEXCOUNT</title>
      <link>https://redict.io/docs/commands/zlexcount/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zlexcount/</guid>
      <description></description>
    </item>
    <item>
      <title>ZMPOP</title>
      <link>https://redict.io/docs/commands/zmpop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zmpop/</guid>
      <description></description>
    </item>
    <item>
      <title>ZMSCORE</title>
      <link>https://redict.io/docs/commands/zmscore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zmscore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZPOPMAX</title>
      <link>https://redict.io/docs/commands/zpopmax/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zpopmax/</guid>
      <description></description>
    </item>
    <item>
      <title>ZPOPMIN</title>
      <link>https://redict.io/docs/commands/zpopmin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zpopmin/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANDMEMBER</title>
      <link>https://redict.io/docs/commands/zrandmember/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrandmember/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANGE</title>
      <link>https://redict.io/docs/commands/zrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrange/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANGEBYLEX</title>
      <link>https://redict.io/docs/commands/zrangebylex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrangebylex/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANGEBYSCORE</title>
      <link>https://redict.io/docs/commands/zrangebyscore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrangebyscore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANGESTORE</title>
      <link>https://redict.io/docs/commands/zrangestore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrangestore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZRANK</title>
      <link>https://redict.io/docs/commands/zrank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrank/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREM</title>
      <link>https://redict.io/docs/commands/zrem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrem/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREMRANGEBYLEX</title>
      <link>https://redict.io/docs/commands/zremrangebylex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zremrangebylex/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREMRANGEBYRANK</title>
      <link>https://redict.io/docs/commands/zremrangebyrank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zremrangebyrank/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREMRANGEBYSCORE</title>
      <link>https://redict.io/docs/commands/zremrangebyscore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zremrangebyscore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREVRANGE</title>
      <link>https://redict.io/docs/commands/zrevrange/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrevrange/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREVRANGEBYLEX</title>
      <link>https://redict.io/docs/commands/zrevrangebylex/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrevrangebylex/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREVRANGEBYSCORE</title>
      <link>https://redict.io/docs/commands/zrevrangebyscore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrevrangebyscore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZREVRANK</title>
      <link>https://redict.io/docs/commands/zrevrank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zrevrank/</guid>
      <description></description>
    </item>
    <item>
      <title>ZSCAN</title>
      <link>https://redict.io/docs/commands/zscan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zscan/</guid>
      <description></description>
    </item>
    <item>
      <title>ZSCORE</title>
      <link>https://redict.io/docs/commands/zscore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zscore/</guid>
      <description></description>
    </item>
    <item>
      <title>ZUNION</title>
      <link>https://redict.io/docs/commands/zunion/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zunion/</guid>
      <description></description>
    </item>
    <item>
      <title>ZUNIONSTORE</title>
      <link>https://redict.io/docs/commands/zunionstore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://redict.io/docs/commands/zunionstore/</guid>
      <description></description>
    </item>
  </channel>
</rss>
