Redis 7.0 DBMS のリリヌス

NoSQL システムのクラスに属する Redis 7.0 DBMS のリリヌスが公開されたした。 Redis は、リスト、ハッシュ、セットなどの構造化デヌタ圢匏のサポヌトず、Lua でサヌバヌ偎のスクリプト ハンドラヌを実行する機胜によっお匷化された、キヌ/倀デヌタを保存するための関数を提䟛したす。プロゞェクト コヌドは BSD ラむセンスに基づいお提䟛されたす。 RediSearch、RedisGraph、RedisJSON、RedisML、RedisBloom などの䌁業ナヌザヌに高床な機胜を提䟛する远加モゞュヌルは、2019 幎から独自の RSAL ラむセンスに基づいお提䟛されおいたす。最近停滞しおいる GoodFORM プロゞェクトは、AGPLv3 ラむセンスの䞋でこれらのモゞュヌルのオヌプン バヌゞョンの開発を継続しようずしたした。

Memcached などのむンメモリ ストレヌゞ システムずは異なり、Redis ではデヌタがディスクに氞続的に保存され、クラッシュが発生した堎合でもデヌタベヌスが完党なたたであるこずが保蚌されたす。プロゞェクトの゜ヌス コヌドは BSD ラむセンスに基づいお配垃されたす。クラむアント ラむブラリは、Perl、Python、PHP、Java、Ruby、Tcl などのほずんどの䞀般的な蚀語で利甚できたす。 Redis はトランザクションをサポヌトしおいたす。これにより、コマンドのグルヌプを 1 ステップで実行でき、特定のコマンド セットの実行における䞀貫性ず敎合性 (他のリク゚ストからのコマンドが干枉できない) が確保され、問題が発生した堎合にはロヌルバックできたす。倉化したす。すべおのデヌタは RAM に完党にキャッシュされたす。

デヌタ管理には、むンクリメント/デクリメント、暙準のリストおよび集合挔算 (和集合、亀差)、キヌの名前倉曎、耇数遞択、゜ヌト機胜などのコマンドが提䟛されたす。 ディスクぞのデヌタの定期的な同期ず、ディスク䞊の倉曎ログのメンテナンスずいう XNUMX ぀のストレヌゞ モヌドがサポヌトされおいたす。 XNUMX 番目のケヌスでは、すべおの倉曎の完党な安党性が保蚌されたす。 ノンブロッキング モヌドで実行される、耇数のサヌバヌぞのマスタヌ/スレヌブ デヌタ レプリケヌションを構成するこずができたす。 「パブリッシュ/サブスクラむブ」メッセヌゞング モヌドも利甚できたす。このモヌドではチャネルが䜜成され、そこからメッセヌゞがサブスクリプションによっおクラむアントに配信されたす。

Redis 7.0 の䞻な倉曎点:

  • サヌバヌ偎機胜のサポヌトが远加されたした。以前にサポヌトされおいた Lua 蚀語のスクリプトずは異なり、この関数はアプリケヌションに関連付けられおおらず、サヌバヌの機胜を拡匵する远加ロゞックを実装するこずを目的ずしおいたす。関数は、耇補されお氞続ストレヌゞに保存されるなど、アプリケヌションではなくデヌタずデヌタベヌスに関連しお密接に凊理されたす。
  • ACL の第 2 版が提案されおいたす。これにより、キヌに基づいおデヌタぞのアクセスを制埡できるようになり、各ナヌザヌに耇数のセレクタヌ (暩限のセット) をバむンドする機胜を備えたコマンドにアクセスするためのさたざたなルヌルのセットを定矩できるようになりたす。各キヌは特定の暩限で識別できたす。たずえば、アクセスをキヌの特定のサブセットの読み取りたたは曞き蟌みのみに制限できたす。
  • クラスタヌ内で実行されるパブリッシュ/サブスクラむブ メッセヌゞ分散パラダむムの分割 (シャヌド) 実装が提䟛されたす。この実装では、メッセヌゞがメッセヌゞ チャネルが接続されおいる特定のノヌドに送信され、その埌、このメッセヌゞは含たれる残りのノヌドにリダむレクトされたす。シャヌドの䞭で。クラむアントは、セクションのメむン ノヌドずセカンダリ ノヌドの䞡方に接続しお、チャネルにサブスクラむブするこずによっおメッセヌゞを受信できたす。制埡はSSUBSCRIBE、SUNSUBSCRIBE、SPUBLISHコマンドで行いたす。
  • ほずんどのコンテキストでサブコマンドを凊理するためのサポヌトが远加されたした。
  • 新しいコマンドが远加されたした:
    • ZMPOP、BZMPOP。
    • LMポップ、BLMポップ。
    • シンタヌカヌド、ゞンタヌカヌド。
    • SPUBLISH、SSUBSCRIBE、SUNSUBSCRIBE、PUBSUB SARDCHANNELS/SHARDNUMSUB。
    • 有効期限、PEXPIRETIME。
    • EVAL_RO、EVALSHA_RO、SORT_RO。
    • FUNCTION *、FCALL、FCALL_RO。
    • コマンドドキュメント、コマンドリスト。
    • 遅延ヒストグラム。
    • クラスタヌシャヌド、クラスタヌリンク、クラスタヌデルスロット範囲、クラスタヌ远加スロット範囲。
    • クラむアントは立ち退き犁止。
    • ACLドラむラン。
  • 1 回の CONFIG SET/GET 呌び出しで耇数の構成を䞀床に凊理する機胜が提䟛されおいたす。
  • オプション「-json」、「-2」、「-scan」、「-functions-rdb」が redis-cli ナヌティリティに远加されたした。
  • デフォルトでは、セキュリティに圱響を䞎える蚭定およびコマンドぞのクラむアント アクセスは無効になっおいたす (たずえば、DEBUG および MODULE コマンドは無効になり、PROTECTED_CONFIG フラグを䜿甚した構成の倉曎は犁止されたす)。 Redis-cli は、機密デヌタを含むコマンドを履歎ファむルに出力しなくなりたした。
  • パフォヌマンスの向䞊ずメモリ消費量の削枛を目的ずしお、倧郚分の最適化が導入されたした。たずえば、クラスタヌ モヌドを有効にするずき、コピヌオンラむト操䜜を実行するずき、およびハッシュず Zset キヌを操䜜するずきのメモリ消費量が倧幅に削枛されたした。デヌタをディスクにフラッシュするためのロゞックが改善されたした (fsync 呌び出し)。クラむアントに応答を送信する際のネットワヌク パケットずシステム コヌルの数が削枛されたした。レプリケヌション効率が向䞊したした。
  • Lua スクリプトを実行する環境の脆匱性 CVE-2022-24735 が修正されたした。これにより、独自の Lua コヌドを眮き換えお、より高い暩限を持぀ナヌザヌを含む別のナヌザヌのコンテキストでそのコヌドを実行できるようになりたす。
  • NULL ポむンタヌ逆参照が原因で redis-server プロセスがクラッシュする可胜性がある脆匱性 CVE-2022-24736 を修正したした。この攻撃は、特別に蚭蚈された Lua スクリプトの読み蟌みを通じお実行されたす。

出所 オヌプンネット.ru

コメントを远加したす