
Redis 4.0 RC1 is out - djanowski
http://www.antirez.com/news/110
======
dvirsky
Personally, modules have been the thing I wanted most in redis for years, and
it's been a delightful experience working on modules for the past months. I
really think it's a game changer for redis and I can't wait to see where this
will take it in the coming years.

Some modules that are already out there (full disclosure - I work at Redis
Labs and I've developed a couple of those):

* redis-cell - a rate limiter module [https://github.com/brandur/redis-cell](https://github.com/brandur/redis-cell)

* Redis Graph - a graph DB with a subset of Cipher for querying. [https://github.com/swilly22/redis-module-graph](https://github.com/swilly22/redis-module-graph)

* RediSeach - fast full-text search engine with fuzzy auto-suggest. [https://github.com/RedisLabsModules/RediSearch](https://github.com/RedisLabsModules/RediSearch)

* redis-ml: Machine learning models as redis data types. [https://github.com/RedisLabsModules/redis-ml](https://github.com/RedisLabsModules/redis-ml)

* redablooms - scalable bloom filters [https://github.com/RedisLabsModules/redablooms](https://github.com/RedisLabsModules/redablooms)

* Secondary indexes with a small subset of SQL for WHERE clauses. [https://github.com/RedisLabsModules/secondary](https://github.com/RedisLabsModules/secondary)

* Time Series [https://github.com/saginoam/RedisModuleTimeSeries](https://github.com/saginoam/RedisModuleTimeSeries)

PS If you're interested in creating modules, we've started a community for
module developers. [https://groups.google.com/forum/#!forum/redis-module-
devs](https://groups.google.com/forum/#!forum/redis-module-devs)

------
siscia
I just started developing a redis module to use SQLite in redis[1].

Overall it is a great experience, I find the module interface really well done
and extremely powerful.

I already saw other greats modules around and I can't wait to see what the
community will be able to come up with.

[1]: [https://github.com/siscia/rediSQL](https://github.com/siscia/rediSQL)

------
hackcrafter
The new LRU algorithm (which he calls Last Frequently Used) is in this
release.

I really enjoyed the blog post on it when it was developed [0].

Very cool to see a real-word pragmatic solutions to this common/hard problem
developed in the open (and in a very readable code-base). I've read through it
thinking about my own LRU use in my own applications!

    
    
      There are only two hard things in Computer Science: cache invalidation and naming things.
      -- Phil Karlton
    

[0] [http://antirez.com/news/109](http://antirez.com/news/109)

~~~
ckluis
There are only two hard things in Computer Science: cache invalidation, naming
things, and off by one.

~~~
hackcrafter
[https://twitter.com/codinghorror/status/506010907021828096](https://twitter.com/codinghorror/status/506010907021828096)

~~~
ckluis
I’m sure that’s where I heard/saw that the first time.

------
rawnlq
> There are reasons why UNLINK is not the default for DEL. I know things… I
> can’t talk.

Doesn't inspire confidence

~~~
antirez
Ok I'll talk ;-) The matter is that currently, if you delete a key, you know
that the command returns once the memory is reclaimed. UNLINK is conceptually
like DEL, but the memory reclaiming, while fast because there is a thread
doing only like that, is asynchronous. So in certain use cases, while
semantically identical if you think at what happens to data, the two commands
are semantically different in the way memory is reclaimed. Think at this:

1\. CREATE A HUGE KEY.

2\. DEL it

3\. CREATE A HUGE KEY.

4\. DEL it

In steps 2 and 4 we know that we always reclaim the memory if we use DEL, so
step 3 is never going to use more memory than it was used in step 1. Instead
change this with UNLINK. Potentially UNLINK is still freeing memory as we now
create back the key again, technically using more memory than the previous
peak memory.

This in practice is hard to trigger since asynchronous deleting is faster than
the time it gets you to build new sizable data. But I still thought this was
an important difference that deserved a different command name.

~~~
AgentME
Maybe a new command like "DELSYNC" should be added that acts like the current
DEL behavior, and in a future version DEL could be changed to act like UNLINK?

~~~
WorldMaker
Or call the new version DEL ASYNC or DELASYNC instead of UNLINK?

~~~
kbd
For what little my opinion matters, I agree it would be clearer if the name
helped to indicate that the semantics are the same except it's just an
asynchronous DEL. Better than relying on a reference to unix semantics, no?

------
kpcyrd

      antirez in commit 9d52411:
       Update linenoise to fix insecure redis-cli history file creation.
       1 file changed, 6 insertions(+), 1 deletion(-)
    

yey! This is the patch for CVE-2013-7458 fixed by debian in august. Details
here: [https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=832460](https://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=832460)

------
logronoide
"Redis Cluster is now NAT / Docker compatible."

Yeehaw!!!!!!!

~~~
sschueller
Does it now let you replicate shards so you don't need to run slaves?

------
wener
If you're interesrer in creating modules in golang, check
[https://github.com/wenerme/go-rm](https://github.com/wenerme/go-rm)

e.g. [https://github.com/redismodule](https://github.com/redismodule)

------
dahdum
With AWS launching a bunch of cool stuff and now Redis 4 going into RC this
week has felt like Christmas come early.

Antirez keeps adding features I didn't know I always needed (ok...wanted),
while keeping the same performant core.

------
cridenour
Very excited to see what the community creates with the new module system.
Have to imagine we will see very specific, high performance database and cache
systems built on top of the rock solid core that is Redis.

------
jimmcslim
Any links to the timeseries modules mentioned in the post? Have found some npm
modules that wrap timeseries around the API, I think, but not any modules that
are directly integrating with Redis.

~~~
dvirsky
[https://github.com/saginoam/RedisModuleTimeSeries](https://github.com/saginoam/RedisModuleTimeSeries)

------
davidbanham
Great news, but more than any feature I'm excited that this might mean
development on Disque is picked up again.

------
anorborg
"Release Candidate"...that is a candidate for release. first words of article
"It’s not yet stable...". Not trying to troll, but come on

------
forgotlogin63
Hoping the major version bump means he's merged that tls patch

------
catalinbraescu2
When will Redis get a Reactive driver (for example for Java)?

