9月20日、Redisは最新バージョン「Redis 8.0-M01」を公開した。
このバージョンは、JSONや時系列データ、5つの確率的データ構造といった7つの新しいデータ構造を導入しており、以前はRedis Stackやクラウドオファリングでしか利用できなかった機能が、今回Redis Community Editionにネイティブで統合された。
Redis 8.0-M01では、ベクトル検索、全文検索のためのセカンダリインデックス、正確な一致、地理空間クエリ、数値データの取り扱い、データ処理機能が強化されており、これにより、より強力なリアルタイム検索と分析が可能となった。これらの機能は、主に生成AIアプリケーションやJSONドキュメント管理に適している。
Redis 8.0-M01の主な新機能
- セッション管理の強化
Redis 8では、セッションデータを柔軟に管理できる新機能が追加された。従来は文字列やハッシュ形式でセッションを管理していたが、 新たにJSON形式でのセッションモデルが可能 となり、データの直列化や逆直列化を行う必要がなくなった。これにより、データ転送のコスト削減やパフォーマンス向上が実現する。また、Redis 7.4で導入された「ハッシュフィールドの有効期限」機能も引き続き利用できる。
以下は、文字列、ハッシュ、JSONそれぞれでのセッション管理のサンプルコードである。
文字列によるセッション管理の例
SETEX "sf_s82099723004b48095935cddc89b29fa2" 1440 "_sf2_attributes|a:1:{s:15:\"sym-session-key\";s:17:\"sym-session-value\";}_sf2_meta|a:3:{s:1:\"u\";i:1722251396;s:1:\"c\";i:1722251264;s:1:\"l\";i:0;}"
GET sf_s82099723004b48095935cddc89b29fa2
"_sf2_attributes|a:1:{s:15:\"sym-session-key\";s:17:\"sym-session-value\";}_sf2_meta|a:3:{s:1:\"u\";i:1722251396;s:1:\"c\";i:1722251264;s:1:\"l\";i:0;}"
ハッシュによるセッション管理の例
HSET session:ab6094d4-ba19-407d-b6c2-f7643f171fcf id mortensi sessionAttr:promo ABC-abc-1234
HMGET session:ab6094d4-ba19-407d-b6c2-f7643f171fcf id
1) "mortensi"
さらに、Redis 7.4で追加されたハッシュフィールドの有効期限を使うことで、セッションデータの有効期限管理が容易になる。
HEXCPIRE session:ab6094d4-ba19-407d-b6c2-f7643f171fcf 7200 FIELDS 1 sessionAttr:promo
HTTL session:ab6094d4-ba19-407d-b6c2-f7643f171fcf FIELDS 1 sessionAttr:promo
1) "7185"
JSONによるセッション管理の例
Redis 8は、JSONデータ構造を使ったセッション管理をサポートしており、データの階層構造やリアルタイム検索が可能となっている。
JSON.SET session:a30d0c64-4cad-4088-a9ef-f1889d182df4 $ '{"lastAccessedTime":1672475765650,"creationTime":1672475765649,"user":{"name":"John","last":"Doe"},"visited":["www.redis.io","www.google.com"], "location": "34.638,31.79", "cart":[{"itemId":"hp-2341","itemCost":1990.99,"quantity":3},{"itemId":"MacBook","itemCost":2990.99,"quantity":15}]}'
JSON.GET session:a30d0c64-4cad-4088-a9ef-f1889d182df4 $.user.name
"[\"John\"]"
- 検索機能の向上
Redis 8は、 セッションデータのリアルタイム検索機能を提供 している。また、 ベクトル検索や地理空間クエリ、タグ検索を活用した柔軟なデータモデリングが可能 であり、これにより、在庫管理や予約システムなどでのデータ分析がより容易になる。
以下は、ベクトル検索やタグ検索のサンプルである。
FT.CREATE session_idx ON HASH PREFIX 1 session: SCHEMA sessionAttr:promo AS promo TAG
FT.SEARCH session_idx '@promo:{ABC\-abc\-1234}' RETURN 1 id
FT.CREATE session_idx ON JSON PREFIX 1 session: SCHEMA $.lastAccessedTime AS lastAccessedTime NUMERIC SORTABLE $.creationTime AS creationTime NUMERIC SORTABLE $.visited AS visited TEXT $.cart[*].itemId AS itemid TAG $.location AS loc GEO
FT.SEARCH session_idx '@itemid:{MacBook}' RETURN 0
キャッシュデータの効率的な処理
Redis 8はデータのキャッシングにも最適化されており、 リアルタイム検索や分析を単一APIで実行できる機能が追加 された。特に、セマンティックキャッシングによって、ベクターとしてデータを保存し、より精度の高い検索や応答の迅速化を実現する。生成AIアプリケーションへの適用
Redis 8の新機能は、 次世代の生成AIアプリケーションの基盤としても活用可能 とされている。特に、キャッシュ機能やベクトル検索を活用することで、チャットボットなどの応答の高速化やトークン消費の削減が実現できる。Redisを使ったセマンティックキャッシングにより、事前に解答した質問の結果を保存して、類似の質問に素早く対応することが可能となり、LLMサービスのリクエストやコストを削減し、アプリケーションのスループットを向上させる。
Redis 8の詳細は、Redis 8.0-M01 releasedを参照していただきたい。
Thanks a lot for the helpful information you bring. Hope you will always give everyone as many great posts as possible in the future.
io games