alanfranz
a year ago
Valkey is just the way to go. No real reasons to stay with Redis. Valkey is supported by multiple industry players and by the Linux Foundation.
nurettin
a year ago
I would gladly switch to a valkey redis compatibility layer if it supports xstreams.
halfcat
a year ago
How does valkey compare with garnet?
runako
a year ago
Haven't used either, but Garnet's dependence on .NET runtimes is possibly going to hinder widespread adoption.
lloydatkinson
a year ago
You mean the cross platform framework? That will hinder adoption? Or do you mean the “Micro$oft is evil” people that still refuse to believe, even when provided links, that .NET is open source? And can even build a single binary?
kobalsky
a year ago
> Or do you mean the “Micro$oft is evil” people
you know, I live in one of those countries that traded licenses for power.
Microsoft demanded a software self-audit from our company (we use Linux on 100% of our computers). When we refused they reminded us that it was mandatory, otherwise they would send an auditor who will access our premises with a judge's order (with cops and everything) to do the audit and then bill us for their time, even if they don't find computers running windows.
are you telling me that I'm an extremist or something for avoiding MS' stuff when perfectly fine alternatives exists?
runako
a year ago
This looks like a troll response, but I will respond earnestly anyway in the spirit of open discussion.
What I mean is that if you many (most?) web applications run on Linux. There are a set of applications and libraries with which Linux users and admins are broadly familiar. In general, .NET is not one of those.
And that's fine! .NET is obviously very successful and runs a huge percentage of the biggest sites on the Internet. BUT if you're talking about replacing Redis, a Linux stalwart, the unfamiliar runtime is a thing. Besides, Redis in particular does not require special dependencies to be installed.
(Out of curiosity, I clicked from the Garnet page to the .NET install instructions. 7 clicks deep into the MS documentation are the relevant apt-get commands. Starting from redis.io is almost as bad, but because Redis is already standard, nobody would start there.)
neonsunset
a year ago
I can assure you it isn't. This is normal reaction to hearing time and time again the same kind of misinformed sentiment that comes with covert or overt hostility when .NET is mentioned, and attempts to provide details to help participants to update their priors are responded to with demagogy. At some point, it becomes one interaction too many that is bound to make people snap.
I don't think this kind of discourse belongs to HN in the first place, as it is driven by tribalistic behavior which is just shameful.
jauntywundrkind
a year ago
I can assure you, you are wrong. Most Linux devs and admins don't know lick all about best practices/maintenance/care-amd-feeding of a .NET runtime.
I get the pain at seeing a snap judgement against a valid virtual machine. But we just don't have the wide scale practice of running that virtual machine, like we do node or python or jvm or rails. .NET has long been a very distant satellite practiced by people who are not like us, who don't run Linux.
It's no longer a hard barrier to cross (running .net on Linux)! Many people do! Yay!! But it still feels like a separate world from a separate place & circumstance.
neonsunset
a year ago
This is a superficial and personal perception that is not in sync with the state of the industry. This kind of bias, luckily, is highly regional, but its concentration around some US states has been unfortunately contributing to its toxicity here and on similar websites. At some point it has to stop, people like you are not doing it out of positive motivation. As stated previously, it’s a tribalistic behavior over perceived allegiances to companyA over companyB. Maybe you should also stop using Java, Go, Rust and every other platform and almost every other reasonably useful language too? They are mostly driven and/or owned by big corporations after all.
You are, quite literally, criticizing a tool that integrates better and requires less ceremony than other options listed or assumed (consider the amount of ceremony your average process of building Redis Server requires). It's been 8 years already, and nothing needs to be proven anymore, it's more of a matter of persistent annoyance to deal with this sentiment. That's all.
What makes me sad personally is that this kind of sentiment encourages making worse software products by promoting less convenient, slower and of poorer quality choices over a better technology.
jauntywundrkind
a year ago
I don't know what to tell you. I'm not trying to criticize anything. I'm offering a well founded basis explaining why people are shy of a technology.
It's not a giant conspiracy theory. It's not some underhanded badmouth campaign.
.NET comes from a very different background that was remote from what everyone else was doing. That's just a fact, that's a true history, and it matters.
But you can't seem to face that truth in any way. And are aggressively crapping the hell out of this Redis thread with outrage that we haven't welcomed you by laying out the palm leaves & celebrating your entrance.
I'm extra shy of Garnet because of this incredibly over-the-top mercenary & reckless assault on discourse, and your attempts use shame and force to mute anyone trying - even gently - to discuss .NET hesitancy.
lloydatkinson
a year ago
Fortunately your opinion of Garnet means absolutely nothing to anyone else.
jauntywundrkind
a year ago
It's not just my opinion that .net is a foreign vm to most Linux users.
And it's not helping ya'll's case that snarky snippey non-reply attacks are what we are seeing on display from advocates in these threads. You an neonsunset have 13 replies between you, where you've attacked and assaulted and belittled anyone trying to do much as mention that .net is a bit off-brand for Linux & sharing some discomfort with it. I've never seen an appeal for popularity that relies on overwhelming force like this, very novel attempt!
internetter
a year ago
I can't place it, but .NET just sets me off on a bad foot. I much prefer just a binary I can run and get on with my life
lloydatkinson
a year ago
You have literally fallen into the same thinking of the people I described. You've been able to build to a single binary for several years. Now you can even do it natively, so no JIT.
neonsunset
a year ago
FYI Garnet requires JIT but this is sort of irrelevant in Garnet's scenario as as frequently starting and killing your Redis server is the last thing you want to do. It can be self-contained in either case, and the happy path scenario will be using one of the pre-built docker images I linked in one of the sibling comments. The described issues are made up.
yohannesk
a year ago
Couldn’t you do that with self contained dotnet build?
vaidhy
a year ago
The fact that it requires additional dependencies that a lot of system administrators are not familiar with..
lloydatkinson
a year ago
I would be greately surprised if most of these were not already on Debian, Ubuntu, and the like. https://learn.microsoft.com/en-us/dotnet/core/install/linux-...
libc6
libgcc-s1
libgssapi-krb5-2
libicu72
libssl3
libstdc++6
zlib1gvaidhy
a year ago
I meant .net runtime dependency which most people are not familiar with and there is not enough trust in MS as there is trust in say, apache foundation.
ryanobjc
a year ago
It’s not that, it’s .NET is weird tech on Linux. You have to install a new and different runtime. Config files are xml and stored in different places? All sorts of crap.
Vs just running a binary. So simple.
People put up with Java for a while but it’s declining in popularity.
jauntywundrkind
a year ago
I don't know if it's weird or not, but it is very very different. Running .net implies a lot, brings a lot of conventions and configuration with it, that's very dense. Dense and powerful and useful. But is it's own universe.
Part of what was so liberating when Node was emerging is that it's so so so configuration less. Python is still fighting to figure out what a package is & where libraries go, and how does work. That was moot with Node, not an issue, because node_modules is the thing & it's almost always local (Debian valiantly fighting to system wide that). .NET has orders of magnitude more carried assumptions & confirmation than Python.
It's super awesome, a lot of it has great reason & power for being there. But this idea that runtimes are black boxes & we ought not notice or care is a day 1 experience that your day 2 engineers may swear at you at over.
neonsunset
a year ago
If you had read the docs, you would know it needs no configuration unless you want to adjust the settings. The latter is Redis-like, simple JSON file and a few CLI args:
https://microsoft.github.io/garnet/docs/getting-started
https://microsoft.github.io/garnet/docs/getting-started/conf...
But you haven’t, because posting FUD is more important.
jauntywundrkind
a year ago
It looks like a very well documented & great product.
But it's presenting the impression that it's a blackbox, that it's just Garnet you have to configure.
But there's a huge vm under the surface of this facade, and you're not showing what the rest of the iceberg looks like in these docs. No vm is free of tuning. Not Java, not node, not .net, and they all have specific learned natures.
It's concerning not encouraging that Garnet doesn't even begin to respect that, that it presents itself as a neutral blackbix binary when there's so much more here.
I'm really shocked at the complainy whiny petulant tone that any remotely critical point of view is met with. I've never seen a group of people so brazenly so aggressively insist we should have no concerns, that showing any appreciation for nuance or difference is met with accusations of FUD. Terribly insulting to be bossed around like this, and I hope the rest of the .net platform advocates aren't think skinned & petulant. I don't think you'll get far trying to win cultural arguments by force.
Garnet looks awesome but this attitude of outrage anyone might for a second pause about .NET & that any concern is invalid and not allowed is absurd.
neonsunset
a year ago
Let's put it another way:
There's a comment stating that the project requires complex and involved configuration, and it's a problem. A link is provided in response that demonstrates it to be the opposite. Turns out, as a reply states, it is equally an issue, possibly because of an assumption that a VM-based language must come with a significant amount of required configuration ceremony (even though counter-points to this, like Go, exist). .NET is configurable, GC modes can be changed, at startup or on the fly (within certain limitations), compiler options can be adjusted, but the default approach is for the users to do as little input as possible unless something does not perform to their expectations.
> Running .net implies a lot, brings a lot of conventions and configuration with it, that's very dense. Dense and powerful and useful. But is it's own universe.
> that it presents itself as a neutral blackbox binary [0]
> .NET has orders of magnitude more carried assumptions & confirmation than Python. [1]
This was posted without verifying whether these statements are true or not, presented as fact. It is not unreasonable to be upset if it happens every single time. You could compare this to how Ruby community feels that whenever Ruby-related projects are discussed, someone is bound to come and point out how it has terrible performance and is therefore unusable (I was guilty of this as well). Emotional embellishments and holier than thou attitude are insufficient to reframe this. When facts change, I change my mind, and if a statement turns out to be incorrect, I stand corrected, and it has been a great boon for acquiring all kinds of tidbits of technical knowledge here so far. At the end of the day, this is an informal setting, therefore the rules of HN and internet etiquette apply first and foremost.
[0]: instead of easier to use pre-built docker images, quickstart guide ends up pointing to just cloning the source code, and doing build+run (dotnet run -c Release). This is as far as it gets from a blackbox binary.
[1]: it only makes the assumptions that are safe to make, which are the same most other platforms are subject to - that certain POSIX and Linux (or macOS/FreeBSD) APIs and glibc or musl are available, that the runtime is present in the $PATH (or not, if an application is published as self-contained or natively compiled), that sort of thing.
lloydatkinson
a year ago
Well said.
lloydatkinson
a year ago
Categorically not true. You can do that if you wish, but you can also simply build it as a single binary. Why do you think otherwise?
https://learn.microsoft.com/en-us/dotnet/core/deploying/sing...
So simple.
yohannesk
a year ago
Is there a language or tool with no runtime? Also Config files can be JSON. I find nothing weird when it comes to .NET on linux vs any other technology
runako
a year ago
The Redis runtimes are colloquially referred to as "Linux" and do not have to be installed by the user.
FireBeyond
a year ago
I think you're really picking at nits.
"apt install redis-server" on my server says that the following will be installed:
- libjemalloc2
- liblzf1
- redis-tools
Garnet requires .NET, so...
apt install aspnetcore-runtime-8.0
Acting like Redis works "out of the box" while Garnet requires a whole other paradigm shift is disingenuous. I have no dog in the fight - I use macOS and I don't use Redis or Garnet.
neonsunset
a year ago
Just flag+downvote and move on, it's been 8 years already and it never changes.
While on the topic of macOS, Swift Library Evolution ABI support is coming .NET for native integration with Swift (particularly for system APIs). I have not tried it yet but it's an interesting feature AFAIK no other language has, well, besides Swift itself.
neonsunset
a year ago
Here we go again, heh. What drives these replies? It's by far one of the easier and simpler dependencies as far as "involved runtime" packages go. That is - easier to deal with than various Python versions, OpenJDK or even Node.js.
Garnet also has pre-built docker images for easy deployment: https://github.com/orgs/microsoft/packages?repo_name=garnet
I find it a bit ironic that the complaints are for what is effectively the simplest process of building the entire thing from source which is distributed under MIT (because that's what dotnet run does the first time you invoke it after cloning the repo), sometimes you just can't win.
chris_pie
a year ago
Garnet doesn't support Lua scripting, which is quite useful for custom atomic operations.