世界を動かす技術を、日本語で。

Redis配列:長い開発プロセスの短編ストーリー

2026年5月4日原文(antirez.com)

概要

  • Redisに新しい Arrayデータ型 を追加する開発経緯
  • AI(主に GPT 5.x)を活用した設計・実装・テストのプロセス
  • 実装中に直面した課題と データ構造の進化
  • Markdownファイルや正規表現( ARGREP)など新機能の追加
  • AIの利点と今後のRedisへの期待

Redis Arrayデータ型開発ストーリー

  • 2024年1月初旬より Redisの新しいArrayデータ型 の開発を開始

  • 実装は約4ヶ月間、 パートタイム的に作業 (実際はフルタイム週も多数)

  • 最初の1ヶ月は 仕様書の作成 に集中

    • 新データ型の意義、C構造体、スパース表現、リングバッファ用カーソルのセマンティクスなどを詳細に記述
  • 仕様書作成時は Opusとペア作業、その後 GPT 5.3 リリースで Codex を活用

  • 設計・実装の全工程で GPT 5.xシリーズ を主に利用

    • フィードバックや設計上の課題解決、妥協点の検討などAIと対話しながら進行
  • 2ヶ月目以降、 自動コーディング(オートコーディング) で実装開始

    • コードを常に レビューしつつ開発
  • 初期設計の 間接参照レベルが不十分 と判明

    • ARSET myarray 293842948324 foo のような操作で効率的なメモリ管理を目指し、 階層構造を再設計
      • ディレクトリ+スライス(スパース/デンス)の2層構造を 超ディレクトリ+デンスディレクトリ+スライス 構造に進化
      • 各スライスは 4096要素 をデフォルトで保持
      • ARSCANやARPOP 操作の効率向上
  • コード全体を 行単位で精査

    • AIによる広範なテストに加え、 細かな非効率性や設計ミス を人間とAIで修正
  • 3ヶ月目には 多様なストレステスト を実施し、堅牢性と有用性を確認

  • 利用ケース検証中に MarkdownファイルをArrayに格納 する使い方を発見

    • これをきっかけに ARGREP (正規表現検索)機能を実装
      • 正規表現ライブラリは TRE を採用(安全性重視)
      • foo|bar|zap パターンの効率化やセキュリティ修正もAIと協力して実施
  • AIの最大の利点

    • 複雑で膨大な作業 の安全網として機能
    • 32ビットサポート の追加・テストなど、膨大なタスクもAIで効率化
    • 複雑なアルゴリズムのバグ検出 にも貢献
  • 膨大な仕様書 の作成が後の作業全体の鍵

    • sparsearray.c、t_array.cなどの 全行レビュー も仕様書が支え
  • ユースケース詳細は PRのコメント に記載(https://github.com/redis/redis/pull/15162)

  • Redisに 数値インデックスを持つデータ型 が加わる意義を強調

  • Array PRの受け入れと新たなユースケースの拡大 に期待

  • フィードバック歓迎 の姿勢


Redis新Array型の設計ポイント

  • 数値インデックス をセマンティクスに組み込む新データ型
  • スパース/デンス表現 のハイブリッド構造
  • データ量やアクセスパターンに応じて 内部構造を自動変形
    • メモリ効率と高速アクセスを両立
  • 4096要素単位のスライス 管理方式
  • ARSCANやARPOP など範囲操作の効率化

AI活用による開発効率と品質向上

  • 設計・実装・テスト・最適化 の各工程でAIを積極活用
  • 仕様書作成や設計議論 もAIとの対話で質向上
  • コード自動生成+人間によるレビュー で効率化と品質担保
  • テストケース生成やバグ検出 もAIが支援
  • AIによる仮想労働力 で膨大な作業量をカバー

今後のRedisと新Array型への期待

  • 従来にないユースケース の開拓
    • ファイル管理やナレッジベース としての活用
    • 正規表現検索(ARGREP) による柔軟なデータ操作
  • コミュニティからのフィードバック を歓迎
  • Redisの進化 とユーザー体験の向上に貢献

Hackerたちの意見

現在の最先端AIに関する自分の経験とすごく似てる。人間の知性や創造性の代わりになるわけじゃなくて、めっちゃ役立つコラボレーターだね。

プロジェクトを開発する時、コードをあまり見ずに、コンセプトやアルゴリズム、アイデアを持ちながら質問したりヒントを出したり、特に製品をしっかり把握してる。けど、Redisにはまだそのスタイルは使ってないな。未来にそれが可能になると、今のサーバーソフトウェアの開発方法は終わると思う。プロジェクトやリポジトリはまだ残るだろうけど、機能や修正、経験の蓄積は価値があるからね。プログラマーの役割は、リーナスがカーネルのためにやってきたことに似てくると思う。今開発してるDeepSeek v4推論エンジンみたいなプロジェクトでは、もうそのスタイルでやってるよ。

AIは、俺がずっと欲しかったプログラミングのアヒルだって言いたいな。

はっきり言っておくけど、これはRedisのオリジナルクリエイター、またはその一人だよ。彼は「普通の開発者」じゃないし、LLMを使って4ヶ月かかったんだ。これをもって、全ての開発者にClaudeやCodex、他のAIコーディングツールに完全に移行するよう命令するための承認印じゃないからね。スタートアップの普通のCEO、見てるよ。

経験豊富な開発者が上手く使うことで、コーディングエージェントがさらに専門知識を高めるというアイデアに対して、かなり強い支持を示してるね。

彼は「普通の開発者」じゃないし、LLMを使って4ヶ月かかったんだ。これを明確にするために、TFAから引用すると:> LLM以前でも、実装は4ヶ月でできることだったと思う。変わったのは、同じ期間でより多くのことができるようになったこと。最初のタイムフレームは4ヶ月だったけど、彼はその期間内でLLMを使ってもっと多くの作業をこなせるようになったんだ。

彼は「普通の開発者」じゃないし、LLMを使って4ヶ月かかったんだ。確かに普通じゃないけど、彼の仕事は明らかに平均的じゃないよ。普通の開発者の仕事っていうのは、配管作業とかCRUDだよね。

現在のやり方をシェアするね:まずAIに手伝ってもらって高レベルのデザインのmdドキュメントを作る。それから別のAIに、同じモデルか別のモデルで批評してもらって、バグやギャップ、抜けを指摘してもらう。いつも後から見れば明らかなことを見つけてくれるんだ。だから、その結果をまとめてもらって、最初のAIに貼り付けて意見を聞く。合意した変更を作って、重要そうな提案が出なくなるまでこの対抗的なラウンドロビンを続ける。最後にAIに計画を立ててもらう。それをまたいくつかのAIに対抗的に回して、最終的には計画がしっかりしたものになる。次にエンドツーエンドのテストケース計画とかもやって、システムの規模によって、初日や週、月の終わりにはコーディングの準備が整う。コードができたら、それを他のAIに仕様や計画と一緒に貼り付けて、バグや抜けを指摘してもらう。メインのAIが実装している間も、他のAIを使ってチェックし続けるんだ。もちろん、コードを読む必要もあるよ。AIは細かい部分を見逃すことがあるからね。

自分でコードを書くのと比べて、そのプロセスはどれくらい速い/遅いの?

AIについての議論は、全く新しい無監視の開発パラダイムを解放したって感じだけど、要するにGoogleが10年間コードを作ってきたのと同じことを言ってるだけだよね。AIの代わりに信頼度の異なる人間がいるってだけで。これは君をからかうためじゃなくて(僕のワークフローもほぼ同じだから)、新しいことは何もないって言いたいだけなんだ。AIは効果的なワークフローも効果が薄いワークフローも加速させる素晴らしいツールだよ。どれが効果的でどれが効果が薄いかを、もっと短い時間スケールで、リアルタイムで示してくれてるんだ!

この「仕様駆動開発」っていうのがAWS KiroのUSPだったんだよね:https://kiro.dev/docs/specs/ > もちろん、コードを読まなきゃいけないよ。AIが仕上げを見逃すことが多いからね。他のエージェントを使ってるって言ってたけど、別のエージェントが未完成な部分を磨くコードレビューって効果ある?同僚たちはそれを絶賛してるけど、私は人間のレビューなしではその価値に懐疑的なんだ。 > それから別のAIに聞いてみる。もしかしたら、合成-反合成-合成の方が応用コンピュータサイエンスには合ってるかもね… https://en.wikipedia.org/wiki/Dialectic#Criticisms

まとめてくれてありがとう。最近のシニア開発者がAIとどう関わっているかを見るのはいつも興味深いね。@antirez: プロジェクトの後半に、あまり関係のない機能のためにregex機能を導入するのはちょっと変な感じがするんだけど、その理由をもう少し説明してもらえる?ありがとう!

Hacker Newsで議論の続きを見る