It’s a shame they don’t offer first class Ruby support. I could see myself using some this stuff. Is this something Redis are likely to offer in future does anyone know?
You're right, we would love to provide a much better experience in Ruby it was just a matter of priorities... BTW, all the modules already have ruby based clients developed by the community. e.g. * https://github.com/npezza93/redi_search * https://github.com/vachhanihpavan/rejson-rb * https://github.com/dzunk/redis-time-series You can see on each modules docs the list of clients developed by the community. e.g. https…
Redis Stack
61–70 of 71 posts
Re: Redis Stack
#62Re: Redis Stack
#63True, you can always run vanilla Redis. Having said this, it really gives me the sensation that Redis is trying to solve too many use cases, turning into some sort of Swiss knife. The reality of Swiss knives is that they don't excel in anything of the things they do.
Re: Redis Stack
#64Earlier quoted context omitted.
The project I'm currently working uses AWS DynamoDB as primary DB. Since it's proprietary, we ensure the AWS-specific APIs are contained in small and specific part of the codebase. For instance, to create a "User" we need the PutItem API from DynamoDB [1]. Similarly, to retrieve a "User", there's the GetItem API [2]. Instead of making references to these APIs all over our codebase, we have a single `db-interface` mod…
That's interesting. Have you tested this with another DB? The design makes a lot of sense, but I feel like it's the kind of thing that's hard to get right unless you actually test it. At the company I currently work, they switched DB some time ago. They already used interfaces but even that was not enough to make the switch, due to some differences in how the DBs worked.
But if the current database has features that can't be mapped to the new one, the interface won't save you.
Example: DynamoDB has a "time-to-live" feature [1]. You add a specific property to any item with a timestamp and it will auto-delete this item at the timestamp determined.
Few databases will provide this out of the box. If you choose to use it and later need to migrate, you'll have to implement your own kind of "TTL monitor" to perform the same task. The interface can't possibly save you from this.
But this would be an issue whether you decide to use a central interface or not, anyway...
[1] https://docs.aws.amazon.com/amazondynamodb/latest/developerg...
Re: Redis Stack
#65True, you can always run vanilla Redis. Having said this, it really gives me the sensation that Redis is trying to solve too many use cases, turning into some sort of Swiss knife. The reality of Swiss knives is that they don't excel in anything of the things they do.
Except the one thing that do excel at: being swiss army knives.
Re: Redis Stack
#66Well I know that's obvious, but Redis is nearly the perfect solution in terms of performance. Unlike disk-based databases, Redis has consistently optimal performance on the order of millions of queries per second. And horizontal scaling is trivial with Redis Cluster (it involves running multiple Redis instances and many Redis service providers don't support it - I hope to have an easier way of running cluster though).
Given that memory is cheap it's quite plausible to store an entire database in a single Redis instance. I do hope that Redis finds its way to replace conventional databases. I think we just need an asynchronous `FLUSH` command, which blocks until the next `fsync`, and that should get us closer to ACID compliance.
Re: Redis Stack
#67Earlier quoted context omitted.
What is preventing you to contribute and create it?
Probably some combination of knowledge, experience, time and interest. Frankly it sounds like kind of an intimidating ask. Do you have special knowledge that makes this seem simple, or is it actually not challenging once you really get all the pieces involved? I'd love to be confident that I could see a statement like the one you replied to and immediately execute on it, so if you have any tips to share please do!
Maybe my answer sounded more harsh in tone than what I meant, sorry for that.
I red the message as "Hey they didn’t cover my specific case!", and I felt like this was unfair to ask an opensource project to cover each corner case upfront and not even consider a lacking feature as something that can be reported or maybe even contributed back.
Re: Redis Stack
#68Earlier quoted context omitted.
Probably some combination of knowledge, experience, time and interest. Frankly it sounds like kind of an intimidating ask. Do you have special knowledge that makes this seem simple, or is it actually not challenging once you really get all the pieces involved? I'd love to be confident that I could see a statement like the one you replied to and immediately execute on it, so if you have any tips to share please do!
Well, to start, have you tried to send information in their issue tracker? Maybe my answer sounded more harsh in tone than what I meant, sorry for that. I red the message as "Hey they didn’t cover my specific case!", and I felt like this was unfair to ask an opensource project to cover each corner case upfront and not even consider a lacking feature as something that can be reported or maybe even contributed back.
Yes, it came off sharp, it would have discouraged me from contributing. Sometimes people don't really get that the process is open to all and need to be invited, I think it can be good to try and see stuff like this as an opportunity to extend that invitation.
I think you misread this one because it is basically "excitement about new thing -> implied disappointment at not getting to use new thing", and I can't find an ask in that.
Re: Redis Stack
#69Earlier quoted context omitted.
That's interesting. Have you tested this with another DB? The design makes a lot of sense, but I feel like it's the kind of thing that's hard to get right unless you actually test it. At the company I currently work, they switched DB some time ago. They already used interfaces but even that was not enough to make the switch, due to some differences in how the DBs worked.
If you can map the differences in your code and your interface does not leak any implementation detail, you won't have problems. But if the current database has features that can't be mapped to the new one, the interface won't save you. Example: DynamoDB has a "time-to-live" feature [1]. You add a specific property to any item with a timestamp and it will auto-delete this item at the timestamp determined. Few databas…
Re: Redis Stack
#70You can really build pretty much anything on top of a K-V store, but I would hate to be vendor-locked into Redis ecosystem.