Remix.run Logo
Redis 8.8: New array data structure, rate limiter, performance improvements(redis.io)
65 points by ksec 2 days ago | 21 comments
9dev an hour ago | parent | next [-]

While I love Redis as a versatile tool for external data structures, it's still lacking in two areas IMHO:

One, it would be cool to be able to embed it, similar to sqlite, directly into applications.

Two, the HA story is so much more complicated than it should be. I totally acknowledge that concurrency and distributed computing is hard, but it should not require reading heaps of documentation and understanding two entirely separate multi-node approaches only to figure out there are lots of subtle strings attached that make it impractical for many applications.

flaghacker 28 minutes ago | parent | next [-]

What would be the point of embedding Redis into an application? What's the advantage of using Redis over using the builtin (or third party) data structures of the language the application is developed in?

I'm asking as a non-webdev who never quite got what Redis actually does, but would love to learn.

mystifyingpoi 20 minutes ago | parent | next [-]

For simple cases, it is probably a total overkill to even consider it, but for something heavier, embedding the database gives you a chance to trivially migrate later to a separate database server.

thefreeman 17 minutes ago | parent [-]

Redis is not a database. It’s a key / value store.

theultdev 9 minutes ago | parent [-]

that's still a database.

it's not a relational database.

freakynit 15 minutes ago | parent | prev [-]

Probably because Redis gives you a very well-defined/understood set of rich data structures with built-in behavior like TTL, atomic operations, eviction, and persistence. These things are otherwise usually scattered across native types, helper classes, or entirely separate libraries.

amtamt an hour ago | parent | prev [-]

Genuinely interested why we need HA in redis, just not read round robin from multiple non-HA instances? Redis (and memcache) are memory caches and should be treated like that, not like highly consistent distributed session store.

compumike 7 minutes ago | parent | next [-]

> Redis (and memcache) are memory caches and should be treated like that

If you haven't come across Kvrocks yet, it may be worth a look: https://github.com/apache/kvrocks https://kvrocks.apache.org/ . It's a database with a Redis-compatible wire protocol, but the database is stored on disk. This means your working set is not limited by RAM and can be a few orders of magnitude larger! On modern SSDs this is still very fast. I think it improves the durability story as well. But the big win is the orders of magnitude larger database space.

As I've been improving my side project https://totalrealreturns.com/ recently I've ended up using both Redis and Kvrocks together. Redis is great for small global state that needs to be super fast. Kvrocks is great for larger bulk data storage (large precomputed datasets), but also supports a lot of the Redis data structures as well as Lua scripts.

n_e an hour ago | parent | prev | next [-]

Redis is used for plenty of things, not just memory caches.

For example if you use it for session storage, you can't have your application read from a random instance that may or may not contain the session.

9dev an hour ago | parent | prev | next [-]

Redis doesn't necessarily have to be used as a cache. Streams, for example, make it a great message queue; but a single-node message queue is a single point of failure and thus not viable for many setups.

acejam 20 minutes ago | parent [-]

That's why you run Redis Sentinel in production

__s an hour ago | parent | prev [-]

Years ago I enabled durability on redis & used it as database for an online card game

tapoxi an hour ago | parent | prev | next [-]

Where did everyone end up on the Redis/Valkey split? Is there still a reason to use Redis after the license kerfuffle?

FunnyLookinHat an hour ago | parent | next [-]

For those who may not know, you can cut your costs in AWS by going with Valkey over Redis for about 33% savings.

https://aws.amazon.com/blogs/database/reduce-your-amazon-ela...

glouwbug 43 minutes ago | parent [-]

But what about Geico?

atraac 33 minutes ago | parent | prev | next [-]

We use almost exclusively Valkey now, mostly because we host on AWS and Render, which both use Valkey. It's faster, cheaper and compatible. I'd consider Garnet too but I believe it doesn't support LUA(or didn't at the time we needed it).

kfir 21 minutes ago | parent | prev | next [-]

Went with 100% ValKey, if you are solely on AWS it is a no-brainer

hakube 35 minutes ago | parent | prev [-]

We went with DragonFlyDB

focusgroup0 17 minutes ago | parent | prev | next [-]

given his ds4 project, likely collaborated with DeepSeek for this release:

https://github.com/antirez/ds4

epolanski an hour ago | parent | prev [-]

There's also a separate blog post that goes into the details of why existing data structures Redis already supported, which could provide array-like behavior, weren't good enough:

https://redis.io/blog/diving-deep-into-rediss-new-array-data...

neomantra 5 minutes ago | parent [-]

@antirez wrote about the development of that data structure last month, which includes how he used LLMs to do it (which was before ds4 for the co-comment mentioning it ;). The PR he linked goes into the motivation.

https://antirez.com/news/164

https://github.com/redis/redis/pull/15162