Redisに新しい汎用データ構造「ストリーム」が導入されました。これはリスト、ソート済みセット、Pub/Subの機能を統合し、時系列データやメッセージングなど様々なユースケースに対応します。ストリームは効率的なメモリ使用と高速な範囲クエリを実現し、Redis 4.0シリーズで年内に安定版としてリリースされる予定です。
#redis
29 件
Redis 4.0のPSYNC2レプリケーションプロトコルで発見された重大なバグについて、その原因と影響を分析。スレーブ再起動時のLuaスクリプト処理の問題から、複数のパッチリリースに至った経緯を詳細に説明し、今後のリリースプロセス改善策を提案。
Redis Streamsは現在開発の最優先事項であり、コンシューマーグループの実装が進行中です。RDBフォーマットの大幅な変更により、StreamsはRedis 5.0でリリースされる予定で、約2ヶ月後に本番環境で利用可能になる見込みです。
Redisのラディックスツリー実装で発生した読み込みオーバーフローバグの調査過程を描く。クラッシュレポートとアセンブリ解析を通じて、既に修正済みのバグを特定した経験から、システムソフトウェア開発における重要な教訓を共有する。
Incapsulaのレポートでは、インターネット上に公開されたRedisインスタンスの75%がマルウェアに感染していると報告されていますが、これは適切な保護なしに公開IPアドレスで公開されているインスタンスに限定された調査結果です。Redisは元々インターネットに直接公開されることを想定しておらず、適切な設定と保護モードの使用が重要です。
Appleのセキュリティチームによって発見されたRedisのLuaサブシステムにおける複数の脆弱性が修正されました。これらの問題は主にクラウド上のマネージドRedisサービスに影響し、cmsgpackライブラリやstructパッケージのバッファオーバーフローなどを通じてメモリ破壊やプロセス制御の可能性がありました。Redis 3.2.12、4.0.10、5.0-rc2で修正がリリースされています。
Redis LabsのCommon Clauseライセンスに関するページが誤解を招き、Redis自体がライセンス変更したかのように伝えられましたが、Redisコアはこれまで通りBSDライセンスのままです。一部のRedisモジュール(RediSearchなど)がApache+Common Clauseに変更されますが、これはRedis Labsが開発したエンタープライズ向けアドオンのみに適用されます。
Redisの創設者であるantirezは、Redis Labsが特定のRedisモジュールのライセンスを変更したことについて、これはオープンコアモデルではないと主張しています。Redisのコアは依然としてBSDライセンスのままであり、オープンコアとは異なり、有用な機能をオープンソース版から取り除いて有料化しているわけではないと説明しています。
Redis作者のantirezが、データベースのレプリケーションにおける「マスター・スレーブ」という用語の使用を擁護。この用語は文脈から切り離しても攻撃的ではないと主張し、政治的正しさよりも実質的な社会問題の解決に焦点を当てるべきだと述べている。
Redis作者のantirezが、技術的に有用ではないが「ハック価値」のあるコードとしてLOLWUTコマンドを実装。コンピュータアート「Schotter」をインスピレーションに、ターミナル上で動的に生成されるアート作品をデータベースコマンドとして実現し、プログラミングの原点である探求と創造の精神をRedisコミュニティに呼びかける。
この記事では、Redisのコードコメントを分析し、9つのカテゴリに分類しながら、コードコメントが長期的な保守性や他者による理解のためにいかに重要であるかを論じています。著者は、優れたコードを書くためにはコメントが不可欠であると主張し、その理由として「コードが何をしているか」ではなく「なぜそのようにしているか」を説明することや、読者の認知的負荷を軽減する役割を指摘しています。
Redis 6ではRESP3のみをサポートし、後方互換モードは提供しないという決定について説明。RESP3はよりセマンティックなプロトコルで、クライアントライブラリの実装を簡素化し、新しいコマンドでも適切なデータ型を返すことができる。移行期間としてRedis 5は2年間サポートされ、ユーザーは十分な時間をかけてアップグレードできる。
Redis開発者であるantirezが、RESP3プロトコル、ACL(アクセス制御リスト)、マルチスレッディング、永続性の改善、データ構造など、2019年のRedis開発計画について詳細に説明しています。ユーザーの懸念に応え、各機能の目的と優先順位を明確にすることで、コミュニティとの透明性を高めています。
Redis誕生10周年を記念して、作者がGopherプロトコルの実装を発表。現代のインターネットの複雑さから離れ、テキスト中心のシンプルなコミュニケーションを求めるコミュニティに向けた、100行のコードで実装された遊び心あるプロジェクト。
Redis 5で導入されたStreamsは、Kafkaのようなメッセージング用途だけでなく、純粋なデータ構造としても強力です。CSVファイルのような柔軟性を持ちつつ、メモリ効率が高く、時系列データやオブジェクトのロギングなど多様な用途に適用できます。従来のSorted Set + Hash方式と比べて13倍のメモリ効率を実現し、1億件のエントリーを1.8GBで格納可能です。
人気プロジェクトのメンテナンスは心理的に大きな負担となる。大量のイシューやPRへの対応、本来の開発作業とのバランス、長期間の継続的な取り組みによる精神的疲労など、オープンソースメンテナーが直面する現実的な課題について、Redis開発者の経験を基に考察する。
Redis 6では、サーバーがクライアントのキャッシュを追跡し、キーが変更されたときに無効化通知を送信する新しいクライアントサイドキャッシュ機能が導入されました。これにより、クライアントはローカルキャッシュを効率的に管理でき、アプリケーションのパフォーマンスが大幅に向上します。
Redis 6の最初のリリース候補版が公開されました。これまでで最大規模のリリースとなり、ACL、SSLサポート、RESP3プロトコル、クライアントサイドキャッシュ、スレッド化I/Oなど多くの新機能が導入されています。多数のコントリビューターによる協力のもと、エンタープライズ環境でのセキュリティと拡張性が大幅に向上しました。
Redis 6.0.0 安定版がリリースされました。主な新機能としてSSL、ACL、RESP3、クライアントサイドキャッシュ、スレッド化I/O、ディスクレスレプリケーションなどが含まれ、クライアントサイドキャッシュの再設計やACLの改善、PSYNC2の強化、RDBファイルの高速ロードなど、RC1以降の重要な改善も行われています。
Redisの創始者であるantirezが、10年以上にわたるRedisメンテナーの役割から退くことを発表しました。彼はコードを書くことを自己表現の手段として捉え、プロジェクトの維持管理よりも創造的な活動を求めています。今後はRedis Labsのアドバイザリーボードとして関わりつつ、新しい可能性を探求していく予定です。
リンクリストの擁護
2.0リンクリストは単なるコーディング面接用のデータ構造ではなく、教育的価値があり、拡張可能で、実用的で、シンプルで、概念的な魅力を持つ重要なデータ構造です。RedisやLinuxカーネルなど多くの実システムで活用されており、計算の空間と時間に関する基本的な理解を提供します。
Redisの創始者であるantirezが、約4年半の休止期間を経てRedisエコシステムに戻ることを発表。ライセンス変更についての見解を述べつつ、新しいベクトル検索機能の開発など技術的な取り組みにも触れ、コミュニティとの関係再構築を目指す。
Redisに新しいデータ構造「Vector Sets」が追加されました。これはソート済みセットに似たデータ型で、スコアとしてベクトルを持ち、ベクトル類似性クエリを実行できます。HNSW(Hierarchical Navigable Small World)グラフを基に実装され、スレッド化された検索、量子化、フィルタリング機能を備えています。Redis 8以降ではネイティブデータ型として利用可能になります。
Hacker Newsのコメントにおけるユーザーの執筆スタイルを、単語使用頻度のベクトルとコサイン類似度を用いて識別する手法を再現。Redisの新しいベクトルセット機能を活用し、Burrows-Delta法によるスタイル検出を実装した。これにより、同一ユーザーの複数アカウントや類似した執筆スタイルを持つユーザーを特定できる。
RedisはSSPLライセンスからAGPLv3ライセンスに切り替え、再びオープンソースソフトウェアとなりました。創設者のantirezは、この変更がコミュニティの受け入れとプロジェクトの一貫性にとって重要だと述べ、自身が開発したVector Setsデータ型がオープンソースライセンスでリリースされることを喜んでいます。
RedisのAGPLライセンスへの変更を通じて、著者はライセンスの「理解度」の重要性、コミュニティの反応、ソフトウェア配布への関心の持続、そして現代の実用的なソフトウェア利用の現実について学びました。ライセンス変更は単なる法的条項以上の意味を持ち、オープンソースの生態系全体に影響を与えることを実感しました。
著者はRedisのベクトルセットにおける複雑なバグ修正で、人間の創造性がLLMを凌駕することを実証。LLMは基本的な解決策しか提案できなかったが、著者はXORとハッシュ関数を組み合わせた巧妙な手法を考案。LLMは有用な対話相手ではあるが、本当に革新的な発想は依然として人間の領域である。
Redisの創設者であるantirezが、HNSW(Hierarchical Navigable Small World)データ構造の実装から得た高度な知見を共有。特にRedisの低遅延・高性能な特性に適合させるための最適化、メモリ使用量の削減(8ビット量子化)、スレッド化による高速化、ノード削除時のメモリ回収、複数プロセスへのスケーリング手法など、実用的な課題への解決策を詳細に解説。
この記事では、Redisコマンドとデータ型に関する詳細なドキュメント、一般的に使用されるパターン、設定のヒント、Redisコマンドを使用して実装できるアルゴリズムについて紹介しています。人間にとっても実際に役立つドキュメントとして、検索エンジンでのインデックス化を目的に公開されています。