<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Introduction to Redict Modules on Redict</title>
    <link>https://redict.io/docs/modules/</link>
    <description>Recent content in Introduction to Redict Modules on Redict</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://redict.io/docs/modules/index.xml" rel="self" type="application/rss+xml" />
    <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>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>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>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>
  </channel>
</rss>
