Redis is introducing a new data structure called Streams to address messaging and time series gaps. Streams support range queries, blocking operations, and capped collections with low memory usage. The feature will be available in Redis 4.0 before year-end.
antirez-com
30 items from antirez-com
A critical bug in Redis 4.0's PSYNC2 replication protocol caused slaves to fail processing writes from Lua scripts after restart. The issue required multiple patch releases (4.0.3 through 4.0.5) to fully resolve due to rushed fixes and testing gaps. The Redis maintainer acknowledged releasing version 4.0 too early and plans improvements to testing and release processes.
Redis Streams development is progressing with consumer groups implementation underway. The feature will be included in Redis 5.0, scheduled for release in about two months, rather than Redis 4.0. Streams are currently the main development priority with core functionality already merged into the unstable branch.
Redis developer antirez investigated crash reports involving radix tree memory access errors. The issue was traced to a read overflow bug that had already been fixed months earlier but wasn't properly backported. The investigation revealed valuable lessons about crash reporting, fuzz testing, and assembly-level debugging for system software.
A security report found that 75% of unprotected Redis servers exposed on the internet are infected with malware. Redis creator explains that these instances are misconfigured and not designed to be publicly accessible. The article discusses security improvements like protected mode and upcoming ACL features in Redis 6.
Redis has released security patches for multiple vulnerabilities in its Lua scripting subsystem, affecting the cmsgpack and struct libraries. These vulnerabilities could allow memory corruption and potential takeover of Redis processes, particularly in cloud hosting environments. The fixes are included in Redis versions 3.2.12, 4.0.10, and 5.0-rc2.
Redis remains BSD licensed, contrary to rumors about license changes. Certain Redis modules developed by Redis Labs are switching to Apache with Common Clause licensing, but the core Redis project continues under the permissive BSD license.
Redis creator clarifies that Redis remains BSD-licensed while Redis Labs develops proprietary modules for additional functionality. He argues this differs from "open core" models where core functionality is removed from free software. The modular approach allows Redis to stay focused while Redis Labs explores complementary features.
Redis creator Salvatore Sanfilippo explains his refusal to change the "master-slave" terminology in Redis replication. He argues that terminology out of context is not offensive and that political correctness focuses on formalities rather than substantive issues. Sanfilippo emphasizes his progressive political views while defending his position on terminology.
Redis creator antirez introduced LOLWUT, a new command that generates computer art inspired by Georg Nees' Schotter. The command uses Braille Unicode characters to create pixel art in terminal interfaces and will change with each major Redis version. LOLWUT serves as a reminder that programming originated from exploration, not just utility.
The author argues that code comments are essential for maintainable software, explaining why code does something rather than just what it does. He categorizes Redis comments into nine types including function, design, why, teacher, checklist, guide, trivial, debt, and backup comments, with examples from the Redis source code.
Redis 6 will only support the new RESP3 protocol, which introduces breaking changes but offers more semantic data types. The author explains mitigations including extended support for Redis 5 and a long testing period. Client libraries will need updates, but RESP3 allows automatic protocol detection for backward compatibility.
Redis creator Salvatore Sanfilippo addresses community concerns about RESP3 protocol, ACLs, and multi-threading. He explains that RESP3 aims to simplify client libraries while maintaining backward compatibility, ACLs focus on operational safety rather than enterprise security, and multi-threading will focus on slow commands rather than I/O scaling.
Redis creator Salvatore Sanfilippo released a Gopher protocol implementation for Redis to celebrate its 10th anniversary. The 100-line code addition allows Redis to serve Gopher content while maintaining normal Redis functionality. The project aims to provide an alternative, text-focused space outside the modern internet's chaos.
Redis Streams, introduced in Redis 5, are a general-purpose data structure beyond just messaging use cases. They function like time-ordered append-only logs with efficient range queries and compact memory usage. Streams can store structured data entries with unique IDs and serve various applications from time series to object modeling.
The author discusses the psychological challenges of maintaining a popular open source project like Redis, including overwhelming community feedback that shifts focus from creative work to issue management. Maintaining consistent work schedules and dealing with difficult community interactions add to the stress, despite the project's success and personal fulfillment.
Redis 6 introduces server-assisted client-side caching through a tracking feature. The system uses 24-bit CRC64 hashing to create over 16 million caching slots for fine-grained invalidation. Clients can opt into tracking and receive invalidation messages when cached keys are modified.
Redis 6 Release Candidate 1 has been released, featuring major new enterprise features including SSL encryption, ACLs for access control, and the RESP3 protocol. This is the largest Redis release to date with contributions from many developers, and includes client-side caching, threaded I/O, and improved modules APIs.
Redis 6.0.0 stable has been released with major features including SSL, ACLs, RESP3, client-side caching, and threaded I/O. The release includes redesigned client-side caching with broadcasting mode, better ACL logging, faster RDB loading, and new STRALGO command. It represents the biggest Redis release ever.
Redis creator Salvatore Sanfilippo (antirez) is stepping down as the project's maintainer after more than ten years. He will transition to an advisory role at Redis Labs while handing over maintenance responsibilities to Yossi Gottlieb and Oran Agra. Sanfilippo expressed that he wants to focus more on creative coding rather than project maintenance.
The article discusses how open source developers often care more about quality in their free projects than in paid work. It argues that demanding users help improve software quality, and developers should not dismiss feedback just because they aren't paid. The paradox is that programmers invest more passion in unpaid open source work than in their professional coding.
The author reflects on parallels between programming and writing novels, noting both require good structure at micro and macro levels and consistent daily effort. A key difference is that code evolves continuously while novels are mostly immutable after completion, though programming could benefit from treating initial designs as final like writers do.
Salvatore Sanfilippo has released his first science fiction novel "Wohpe" after two years of work. He discusses the challenges of learning to write literary prose and the difficult publishing market for fiction in Italy. The author reflects on the satisfaction of creative writing despite the uncertain commercial outcomes.
Salvatore Sanfilippo has published his first science fiction novel 'Wohpe' after two years of work. He describes the writing process as learning from scratch, comparing it to learning chess where initial moves feel random before developing coherent style. The author reflects on the challenging publishing market where most books sell under 100 copies in Italy.
The author defends linked lists as valuable educational tools that teach fundamental computing concepts like time complexity. They highlight linked lists' versatility, noting their use in systems like Redis and Linux kernels, and their ability to be augmented into structures like skip lists.
The Idle scan was conceived in late 1998 by the creator of Hping, who discovered that IP packet ID fields increment predictably. This vulnerability allowed scanning using spoofed packets, making the scanner's real address invisible to scanned hosts. The attack was publicly announced on BUGTRAQ and became a classic network security technique.
An experienced programmer shares how LLMs like ChatGPT help accelerate coding tasks, especially for Python programming and disposable scripts. He finds them valuable for navigating complex frameworks but notes limitations in system programming and complex reasoning.
The author describes their usual blogging process and explains how they recently wrote a post in Italian and translated it to English using GPT-4. They express mixed feelings about this approach, noting the translation captures their voice better but raises concerns about losing English writing skills.
The blog post proposes a new sampling algorithm called First Token Cutoff (FTC) as an alternative to nucleus sampling. FTC selects tokens based on their probability ratio to the highest-scoring token, rejecting those below a cutoff threshold. This approach aims to maintain creativity while avoiding selection of suboptimal tokens that could lead to hallucination.
The Raspberry Pi Pico can play audio files without a DAC using PWM with high-frequency square waves and varying duty cycles to approximate different voltage levels. This method converts WAV files to raw format and plays them by setting PWM duty cycles according to sample values from a single GPIO pin.