17 ms·
Redis Turns 10 – How it started with a single post on Hacker News
- whalesalad 8y agoEasily one of the most versatile and reliable pieces of software I’ve ever had the pleasure of using. To ten more years!
- incomplete 8y agoespecially for bitcoin miners and unsecured redis instances!
- whalesalad 8y agoI’m curious. Elaborate?
- nickthemagicman 8y agoAround 75% of open redis servers are hacked. https://www.bleepingcomputer.com/news/security/around-75-percent-of-open-redis-servers-are-infected-with-malware/ https://www.bleepingcomputer.com/news/security/around-75-per...
- antirez 8y agoRedis safe mode introduced in 3.2 reduced the problem but still folks actively misconfigure Redis before putting it in a public IP... Now there are ACLs in Redis 6 that will mitigate this even more, but it's a lost game, because images are created with installations of Redis that are made completely accessible on purpose.
- nickthemagicman 8y agoOh not blaming Redis in the slightest. Its one of my all time fav tools. Things are only secure as ppl configure them. I don't even want to know how many elasticache Redis servers data are just unsecured on a public IP because it's so easy to configure that way.
- incomplete 8y ago^^^ this exactly.
- Can_Not 8y agoThis happened to me, but it's because our sysadmin left a firewall port open to the whole world without setting a password on redis, which allowed a random drive by port scan to inject a LUA script. They couldn't escalate privileges, only run the miner and make the server mostly unresponsive.
- incomplete 8y agohttps://www.imperva.com/blog/rediswannamine-new-redis-nsa-powered-cryptojacking-attack/ https://www.imperva.com/blog/rediswannamine-new-redis-nsa-po...
- anonimito 8y agoAh yes, the nostalgia
- dimgl 8y agoRedis is incredible. I built a matchmaker with it as the sole data store and it has been a breeze to use. It's so simple to visualize data structures with it and I just can't see myself using any other in-memory data store. Also Redis Sentinel is fantastic.
- MuffinFlavored 8y agoWhat does Redis Sentinel do in a nutshell?
- 33degrees 8y agoProvides high availability for Redis
- manigandham 8y agoIt's a small monitoring program that checks a master/replica pair and alerts you or initiates a failover.
- kortilla 8y agoWhat data structure can’t be used in memory?
- simonswain 8y agoI've been using Redis many years. It's served me well. It's simplicity and vision is a testament to antirez's hard work. Thank you sir.
- michaelangerman 8y agoFor me, Redis is the most software valuable tool I use. I was hooked from the day I started using it about 8 years ago. It somehow has a place in almost every software project I work on. And it just keeps getting better. Now with RESP3 on the horizon, it will enable me to even further benefit from the many clients available in almost every programming language. https://news.ycombinator.com/item?id=494649 https://news.ycombinator.com/item?id=494649 Here is the link from Feb 25, 2009 Note this number = 494649 Today = 19 247493 Nineteen (19) Million Posts etc later (mas o menos)
- edpichler 8y agoIs it worthwhile to replace a MySQL with Redis? Am I losing something?
- patrec 8y agoYour data, eventually? If that's OK, some of the time, then Redis might be fine and will be much faster (since not losing data involves much more work).
- michaelangerman 8y agoI believe if you think of Redis as a data structure server, then there are lots of applications you can build out that have simple commands like set and get for both lists and hashmaps that are slightly different ways of thinking about saving and retrieving your data. The concept of a set is very powerful and easier to implement I believe than using SQL.
- yeskia 8y agoIn classic Hacker News fashion, the top comment is just suggesting you use something else instead.
- wnevets 8y agoSometimes I worry I'm going to be THAT person
- tom_ 8y agoI wonder what the odds are of any new thing posted on HN staying the course and turning out to be useful in the long run. Probably not very high.
- alexanderdmitri 8y agoAbout 1 in 57 according to the random statistic generator app someone posted years ago that I'm still using multiple times a day. Super stoked the developer finally released the "output as odds" feature (though my favorite output setting is definitely still "matter-of-fact tone with a hint of strained patience").
- seibelj 8y agoMandatory Show HN post on Dropbox: https://news.ycombinator.com/item?id=8863 https://news.ycombinator.com/item?id=8863
- dominotw 8y agoIn typical hackernews fashion, top comment is a comment complainling about another comment
- azhenley 8y agoThe original HN post only has 23 votes and 11 comments! Good reminder that HN doesn't have to be crazy about your project for it to become successful. https://news.ycombinator.com/item?id=494649 https://news.ycombinator.com/item?id=494649
- misiti3780 8y agoTrue, but there were a lot less people on hacker news 10 years ago (presumably)
- gus_massa 8y agoI agree. It's difficult to compare, but for comparison: 2009> https://news.ycombinator.com/front?day=2009-02-25 https://news.ycombinator.com/front?day=2009-02-25 One with 381 points, a few with 100 points, and it descends quite fast and the last few posts in the page have about 20 points. 2019> https://news.ycombinator.com/front?day=2019-02-25 https://news.ycombinator.com/front?day=2019-02-25 Three with more than 400 points, many with 300/200/100 points, and only the last has less than 50 points.
- bilifuduo 8y agoReminds me of the time when Bitcoin was first posted to Hacker News and only got 5 upvotes and 3 comments: https://news.ycombinator.com/item?id=599852 https://news.ycombinator.com/item?id=599852
- kortilla 8y agoCool, but I think the first time it received a whopping nothing: https://news.ycombinator.com/item?id=463793 https://news.ycombinator.com/item?id=463793
- agumonkey 8y agoSays something about society's myopia. I need to research and synthetize history of projects like these. Invisible at first, diagonal .. and then booming. Mostly about people's inspiration and thinking process prior said project.
- hashhar 8y agoRedis is the best data store I've had the fortune to work with. No nonsense data structures coupled with extremely reliable performance, beautiful API and extremely easy to manage. It also helped me earn a lot of praise for using redis-cli --pipe to bulk insert data which bringed down a data import job to a few minutes from 4 hours. I eventually built a wrapper around redis-cli --pipe for using it with a cluster.
- techie128 8y agoYou clearly haven't used it at scale with sorted sets.
- lessclue 8y agoCan you elaborate on that please?
- techie128 8y agoTry inserting more that 30K elements in a key which is a sorted set and watch the insertion time, memory & cpu usage. Now try doing this to millions of keys simultaneously.
- darkr 8y agoWe run several million sorted sets, but they are all short sets (100s), but do thousands of writes/sorts per second without issue. From memory - there was a setting to turn on/off gzip compression for a list once it went beyond a certain size - do you have this enabled?
- deleted 8y ago[deleted]
- kawsper 8y agoI never realised it was Ezra that did the initial redis-rb implementation.
- jaggederest 8y agoHe talked about it at Railsconf 2009, as well. I remember that was the first time I installed it.
- phowon 8y agoAs someone who is fairly tech literate but not familiar with this tech stack - in practical terms, what is Redis, and what is it used for?
- computerex 8y agoIt's a key value store.
- kijin 8y agoWhere the value is not just a string but can also be a set, list, ordered set, hash (dictionary), etc. You can store basically any common data structure in Redis and operate on individual elements as if they were local variables in your program.
- RhodesianHunter 8y agoIn memory fast key value store. Great for caching, or anything distributed systems need quick access to.
- markdown 8y agoSo, like memcache?
- cortesoft 8y agoIt also supports other data structures, like lists, sets, and hashes. Super fast, and probably the best documentation I have ever seen.
- stevoski 8y agoYes, exactly like memcache.
- BozeWolf 8y agoIt can do things memcache can do and way more. Like storing other data types. Persisting storage to disk. Geospatial queries. Pub/sub. Lua scripting. So, no, they are not interchangeable! Only if you just store keys and strings and do not care about persistence.
- rkeene2 8y agoThe first version of Redis: https://gist.github.com/antirez/6ca04dd191bdb82aad9fb241013e88a8 https://gist.github.com/antirez/6ca04dd191bdb82aad9fb241013e...
- rb808 8y agoHas anyone ever had problems with Redis? I expect it to always work and it always has. I really like it but am worried I trust it too much now. Please tell me I'm fine to trust single instances!
- Gigablah 8y agoOnly problem I ever encountered was mainly my fault -- my Redis instance was used to hack my server (the attacker manipulated Redis data and dumped it to overwrite /etc/passwd, etc). I was an idiot and hadn't locked down my installation. Luckily my provider had disk snapshots.
- tpetry 8y agoSounds interesting. Can you share how and what happened in detail?
- Gigablah 8y agoThere's actually a writeup of this technique on the Redis blog: http://antirez.com/news/96 http://antirez.com/news/96 In my case they overwrote ~/.ssh/authorized_keys, /etc/group and /etc/passwd as well.
- HeadlessChild 8y agoYup, same thing happen to my VPS. I had redis running on a tcp port instead of a unix socket and I didn't have a firewall setup.
- starik36 8y agoI did, but I am not sure the use case was right. Inherited an old web forms project and tried switching from Memcached to Redis. It didn't work out due to a large number of serialization/deserialization of object stores. The .net Redis library was causing a massive amount of garbage collection storms. I was probably asking it to do too much though.
- jillesvangurp 8y ago
- iokevins 8y agoTcl was the first language used. I laughed, but only because I've developed in Tcl and it has its time and place. Though I don't remember how to do an if statement in Tcl off the top of my head. Update: ok, its squiggly brackets; that's right.
- fuball63 8y agoI've been using TCL more and more lately. It's ability to use its own interpreter is super handy. I made a static site generator in it most recently.
- atombender 8y agoWhat's the clustering story these days? Last I checked, Redis Cluster still had lots of issues losing writes, and the design doesn't seem to have been revised since Aphyr ran Jepsen tests on it back in 2013, making it (at least from my perspective) practically useless for anything that requires distributed consistency, which means most things that I look to use a distributed data store for. I've also been warned by fellow devs that much of the clustering logic is actually done in the client, and there's historically been a lack of mature clients for all languages. Even if you find a mature client, the complexity of the implementation implies that not all clients may behave identically, or may have different bugs. Then there's the issue of lock-in, where you become dependent on a specific client library and its development lifecycle. I don't know if all of this is true, but I also don't hear a lot of people talking about Redis Cluster these days. I know you can use Redis in master/slave mode via Sentinel + Twemproxy, though even this solution seems to have some issues with data consistency. Running all three also appears a lot more complex than an integrated system. I see a lot of comments implying that Redis is mainly used in single-node setups, so that might be where it shines?
- techie128 8y ago> I know you can use Redis in master/slave FYI - the current accepted PC term in the Valley is master/replica or leader/follower. master/slave was deemed too offensive not too long ago.
- matterhorn2000 8y agoOh please.
- banachtarski 8y agoDeemed by who? I'm in the valley and this is the first time I'm encountering it. I need to leave.
- lessclue 8y agoHuh, what? Never heard of this DB replication "PC" nonsense before.
- 8y ago
- davidw 8y agoOne of the funny things is that I've still never really used Redis directly, only as a sort of opaque part of other things. I posted that link because I've known antirez for a long time, worked with him at Linuxcare, and when he said he was working on something cool - I believed him!
- antirez 8y agoThanks for the trust :-D
- schoen 8y agoWas he one of the Prosa folks back then?
- antirez 8y agoNope I joined with many ex Prosa to Linux Care IT. So many people were the same but different company.
- turdnagel 8y agoI thought it was funny that the author of OP said that "...one suggested Salvatore re-write Redis in Erlang" and it turned out to be you!
- davidw 8y agoIt was more of an excuse to get him to play with Erlang some... I always thought he might find it fun to work with.
- vorticalbox 8y agoDid he ever try it?
- davidw 8y agoNot too seriously afaik.
- EugeneOZ 8y agoCongratulations! Fast and stable DB. In 2011 I wrote PHP client for Redis with features like tags, safe locks, map/reduce. It was heavily tested and users had no issues - and since there was no issues, it was removed from the list of clients after few years as "abandoned". Nobody even tried to contact me :) Now I don't use PHP and barely use Redis so it's all in past. But that experience taught me a lot of new things. Salvatore Sanfilippo, you are great programmer. Redis API is elegant, safe and effective. I personally had 0 data losses all years I use Redis. And this DB is always extremely fast.
- akuji1993 8y agoFunny anecdote though. No patches every few hours, no 1000 issues open? Apparently you were too good of a programmer ;)
- EugeneOZ 8y agoI'm still a programmer, just use Rust mostly, instead of PHP. It's not an anecdote, there was 6-7 issues on github and code was really well tested.
- clan 8y agoWhy not post a link to it? That would be a simple and welcome revival.
- EugeneOZ 8y agoRedis evolved, clients evolved, there are better PHP clients right now I believe. And I'm here not promote my code, I'm here to congratulate Antirez and thank him for his great job and for being a good example of how to write API, stable and fast code, how to communicate with the community. His blog is a source of lessons, wise thoughts and inspiration.
- pault 8y agoGoogle says anecdote means "a short amusing or interesting story about a real incident or person." Edit: This should have been a reply to the comment from EugeneOZ saying it's not an anecdote; I replied to the wrong comment by accident.
- melenaos 8y agoWho can help me identify redis timeouts in azure mvc core project?
- jbverschoor 8y agoIt's funny to see how HN has changed. People who are actually excited about a project, creating a client for ruby within hours. Not the same anymore
- tybit 8y agoPeople are still quick to build and add to new projects. Now it’s more likely to be something related to Kubernetes or serverless, and those people are seen as hype chasers not pioneers. Like I’m guessing people were in the past too.
- fastbmk 8y agoI guess 10 years is not enough to develop concurrent in-memory data structures storage. Yeah, let's code like it's 1970's and multi-core CPUs are Sci-Fi ;)
- vkazanov 8y agoHaving no threads is exactly what makes Redis so convenient in deploying it to clusters: you have a node, and the node is a single process. It's like a building block. Also, Redis source code is so much cleaner than memcached!
- zbentley 8y agoAnd yet it works incredibly well and is indispensable for many organizations. It's almost like less sometimes really is more, and that prioritizing simplicity of implementation does more than just make code maintainable--holding that value as a developer can "leak" all the way up to the reliability of your software, in the best possible way.
- SpaceInvader 8y agoThat dancing guy is rad tho :)
- gadders 8y agoJust coming here to say congratulations to Antirez. I've never had to use the software myself, but I always read Antirez's posts and his interactions on here. I think it's a great example of technical leadership.
- aretaic 8y agoSlightly off-topic, but what makes Redis cluster preferable over something like etcd as a K/V store?
- antirez 8y agoThey are at two extreme places of the spectrum basically. One is a very slow CP KV without any feature over basic stuff. Another is a data structure server with a KV shell, and weaker consistency guarantees and good performances.
- dstroot 8y agoI was first exposed to Redis when I first started building NodeJS sites using ExpressJS many years ago. There was a session caching layer that used Redis that “just worked” and was fast. Later I had other opportunities to use Redis and the more I used it the more my appreciation grew. However I echo some of the well put discussions in this thread about Redis clustering. Thank you Antirez!
- mosselman 8y agoWhy is there JavaScript that prevents me from selecting any text? That is how I read sometimes (subconsciously mostly). When I disable JS, I can select text again. What are you trying to accomplish with this?
- TicklishTiger 8y agoThe page loads scripts from an insane number of hosts: redislabs.com 3lift.com eb2.3lift.com adnxs.com ib.adnxs.com adroll.com d.adroll.com s.adroll.com advertising.com pixel.advertising.com s3.amazonaws.com execute-api.us-east-1.amazonaws.com x7ussrk21g.execute-api.us-east-1.amazonaws.com auryc.com mt.auryc.com bidswitch.net x.bidswitch.net bizible.com cdn.bizible.com bizographics.com sjs.bizographics.com casalemedia.com dsum-sec.casalemedia.com cloudflare.com cdnjs.cloudflare.com createjs.com code.createjs.com digitalreachagency.com cdn.digitalreachagency.com doubleclick.net g.doubleclick.net cm.g.doubleclick.net googleads.g.doubleclick.net stats.g.doubleclick.net static.doubleclick.net drift.com api.drift.com chat.api.drift.com 77314-14.chat.api.drift.com conversation.api.drift.com customer.api.drift.com enrichment.api.drift.com event.api.drift.com live.api.drift.com 77314-14.live.api.drift.com metrics.api.drift.com driftt.com js.driftt.com facebook.com www.facebook.com facebook.net connect.facebook.net fontawesome.com use.fontawesome.com ggpht.com yt3.ggpht.com google-analytics.com www.google-analytics.com google.com www.google.com fonts.googleapis.com googletagmanager.com www.googletagmanager.com gstatic.com fonts.gstatic.com hotjar.com in.hotjar.com script.hotjar.com static.hotjar.com vars.hotjar.com imgix.net driftt.imgix.net leadlander.com tracking.leadlander.com linkedin.com ads.linkedin.com px.ads.linkedin.com www.linkedin.com marketo.com lonrtp1.marketo.com lonrtp1-cdn.marketo.com rtp-static.marketo.com marketo.net munchkin.marketo.net mktoresp.com 915-nfd-128.mktoresp.com mrpdata.net j.mrpdata.net openx.net us-u.openx.net outbrain.com sync.outbrain.com pubmatic.com simage2.pubmatic.com reachforce.com cdn.reachforce.com smartformsapi.reachforce.com rlcdn.com idsync.rlcdn.com rubiconproject.com pixel.rubiconproject.com sf14g.com t.sf14g.com stackadapt.com srv.stackadapt.com tags.srv.stackadapt.com taboola.com match.taboola.com trc.taboola.com userty.com cdn.userty.com yahoo.com ads.yahoo.com youtube.com www.youtube.com ytimg.com i.ytimg.com I guess some of all those hosts is doing something that goes haywire and results in this problem. Would be cool if we could downrank pages like this somehow. Maybe tell the submitter "The page loads scripts (and therefore sends data to) 117 different servers. Please be aware that we will not show it on the front page until it has at least 117 upvotes".
- nailer 8y agoCurrent Open Source Redis fork: https://goodformcode.com https://goodformcode.com
- lessclue 8y agoRedis was/is open source. The licensing thing was with Redis labs modules (plugins) for Redis.
- dvirsky 8y agoI can truly say that Redis has changed my life and career. I started using it in 2010, got hooked immediately, and I've been a member of the community and contributor ever since. I got to build so many cool things with Redis over the years, it's amazing how versatile and powerful it is. Having worked for a couple of years at Redis Labs, I got to work closely with antirez, and that's been a transformative experience as well, which made me a better engineer and open source contributor. Thank you, Salvatore. Here's to the next 10 years.
- badloginagain 8y agoAnd to that Erland rewrite!
- deleted 8y ago[deleted]
- antirez 8y agoThanks Dvir! Working with you was an amazing time experience for me as well. See you soon in TLV!
- steve76 8y agoCongrats everyone. Stories like these are very inspirational.
- saberience 8y agoWhy would I use Redis over Couchbase?
- therealdrag0 8y agoI don't know about Couchbase, but Redis tends to be lighter/faster than full-fledged databases.
- kazinator 8y agoI like antirez's "Linenoise" library. I converted it to Unicode, and gave it a multi-line editing mode with undo, visual copy and paste, edit in external editor, parenthesis matching, incomplete syntax continuation, and more. It's all in the TXR Lisp REPL.
- antirez 8y agoCool! You should reply here with a link to your fork.
- kazinator 8y agohttp://www.kylheku.com/cgit/txr/tree/linenoise http://www.kylheku.com/cgit/txr/tree/linenoise I've tried to keep it decoupled from TXR internals, and to abstract it from the OS a bit, so there is a considerable "struct lino_os" interface now. There is a dependency on a "config.h" which provides some HAVE_* constants. There is a user guide to the REPL in the TXR Lisp manual; that provides context for some of new interfaces, like what is the lino_set_atom_cb function for. http://nongnu.org/txr/txr-manpage.html#N-025AAA27 http://nongnu.org/txr/txr-manpage.html#N-025AAA27
- antirez 8y agoWow a lot of interesting work. Thanks for sharing, I think I should compile a list of the forks at the end of the README.
- tracker1 8y agoDoesn't load with ublock origin.
- mlthoughts2018 8y ago> “It takes guts to be a first follower. You stand out, you brave ridiculing yourself. Being a first follower is an underappreciated form of leadership” There is a Mark Twain quote that reminds me of this: “In the beginning of a change the patriot is a scarce man, and brave, and hated and scorned. When his cause succeeds, the timid join him, for then it costs nothing to be a patriot.” (edited with the full quote)