Live data from Hacker News

Redis 8.8: New array data structure, rate limiter, performance improvements

redis.io

91–100 of 118 posts

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#91
post #12
post #7

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

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).

https://microsoft.github.io/garnet/docs/welcome/compatibilit...

> Garnet now has full-fledged and efficient support for Lua scripting. You can enable Lua with the --lua switch.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#93
post #3

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 en…

Redka can be used embed, in Go: https://github.com/nalgeon/redka

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#94
post #3

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 en…

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.

I mostly use redis for pub/sub communication between services. If the app wasn't a collection of knative functions, and instead a monolith, it would be cool to also use redis for event based communication.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#95
post #3

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 en…

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.

Locality and latency.

Network hops are not free! Those milliseconds are an eternity compared to local function calls.

The optimal architecture is something like what Service Fabric or Orleans can do with their distributed dictionary types: reads are generally in-process and take only nanoseconds (but writes require a synchronous replica copy to a remote host.)

Obviously this requires load balancers to steer traffic consistently, but that’s a common feature… outside of the public clouds where they forgot latency exists.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#96
post #82
post #68

Earlier quoted context omitted.

I am not aware of an in-process alternative similar to what Redis offers.

Well the most basic redis replacement would be just a global hashmap to replace GET and SET, possibly with a background thread to periodically delete expired keys. But obviously that stops working as soon as you get a second node. The entire value of redis IMO is that is ISN'T inside your normal application, but rather some shared storage that all nodes can use to coordinate and that survives deploys, but that provid…

Neat. Write that up, match parity, and give all the function calls with the same name as redis, and you're both happy! You get to hand roll something, he gets to use a library that others have perfected over the years!

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#97
post #7

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

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...

We're planning to go to Valkey for exactly that reason.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#98
post #38

Earlier quoted context omitted.

Valkey, because our cloud provider is hosting it and that's obviously what they prefer. I feel like we're using about 1% of its features at this point - really just as a fast K/V store - so it would be easy to switch if needed, but I can't see a case where we would.

They prefer it because they don't have to pay to use it.

Sure. I prefer that because they charge me less.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#99
post #17

Earlier quoted context omitted.

That's why you run Redis Sentinel in production

With the amount of problems I had using Redis Sentinel, I really wish there was another way. On multiple occasions, with completely different deployments, it got itself into a non-repairable state where the only option was to drop it and setup the replicas manually. I was hoping someone would do a Patroni-like project for Redis, but I've not found it yet. I've moved all persistent data to PostgreSQL and use a number…

I suggest you to take a look at rdsync (https://github.com/yandex/rdsync), exactly what you want: Patroni-like high-availability tool for Valkey/Redis. Uses ZooKeeper for external coordination. We use it in our large deployment and with a couple patches you will forged about the need to take manual actions to resolve broken states.

Re: Redis 8.8: New array data structure, rate limiter, performance improvements

#100
post #96
post #82

Earlier quoted context omitted.

Well the most basic redis replacement would be just a global hashmap to replace GET and SET, possibly with a background thread to periodically delete expired keys. But obviously that stops working as soon as you get a second node. The entire value of redis IMO is that is ISN'T inside your normal application, but rather some shared storage that all nodes can use to coordinate and that survives deploys, but that provid…

Neat. Write that up, match parity, and give all the function calls with the same name as redis, and you're both happy! You get to hand roll something, he gets to use a library that others have perfected over the years!

Ehm no? Do it yourself if you want. I'm already happy.
Post reply on HN