Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Node.js用のRedisOMの紹介

JavaScriptとTypeScriptの高速で簡単なオブジェクトマッピング

私は何かを書きました—まあ、実際に私たちの何人かは物事を書きました—私はちょうどNode.jsバージョンを書きました。注目に値するのはかなりクールなことだと思います。私はそれを楽しみにしています。私が話しているのは、Node.js用のRedisOMです。

Redis OMとは何ですか? Redis OMは、Redisデータ構造をコードに直接マッピングすることでRedisを簡単に使用できるようにするライブラリです。 OMビットはオブジェクトマッピングを表します 、しかし、将来的にはそれ以上のことを行う予定です。

詳細については、以下をお読みください。

速いより速い

Redisは高速であり、高速よりも高速であり、プログラムが気にする種類のハッシュ、リスト、セットなどを格納していることは、おそらくすでにご存知でしょう。これらは私がプログラマーとして考える構造です。初心者の技術者にRedisとは何かを説明するとき、Redisは大学で学んだすべてのデータ構造であり、その前にワイヤープロトコルが配置されていることを伝えます。

モジュールは、 new を導入することで、Redisをさらに素晴らしいものにします(そうです、それは言葉ではありません)。 プログラムが気にするデータ構造。 RedisBloomは、BloomフィルターやCuckooフィルターなどの確率的データ構造を追加します。 RedisGraphを使用すると、Cypherを使用してグラフを保存およびクエリできます。 RedisAIは、すばらしいAIのテンソルを提供します。すべて非常に便利です。

最も素晴らしいモジュール

ただし、Redisをすべてのプログラマーが望んでいる強力なインメモリデータベースにする2つのモジュール、RedisJSONとRediSearchがあります。

RedisJSONは、テーブルに階層をもたらします。ハッシュは素晴らしいですが、ハッシュにハッシュを埋め込みたい場合はどうでしょうか。 RedisJSONは、私の階層データをJSONドキュメントに保存できるようにすることでカバーしています。

一方、RediSearchでは検索が可能です 気になるデータ構造。もちろん、セットを使用して手動インデックスを作成することはできますが、そのアプローチは制限されており、手動です。うん。 RediSearchを使用すると、必要なデータに直接アクセスするためのクエリを作成できます。

RediSearchとRedisJSONを組み合わせると、Redisはかなり気の利いたドキュメントデータベースになります。あなたはあなたが望む階層とあなたが気にかけているものをその中に見つける能力を手に入れます。両方の長所とそのすべて。

実際、これはとてもおいしい組み合わせだと思います。私たちはそれらをまとめて、RedisJSONと呼んでいます。

Node.jsのRedisOM

RediSearchのクエリ言語は強力です。とてもパワフルな。これにより、Redis内のハッシュおよびJSONドキュメントをさまざまで洗練された方法で検索できます。そして、私がそのすべての力を必要とするとき、それはとてもクールです。しかし、時々私はそのすべての力を必要としません。そして私は 怠惰な開発者—できるだけ簡単にしたいと思っています(そして簡単ではありません)。

物事をできるだけ簡単にすることは、Node.js用のRedisOMを書いたときに私がやろうとしていたことです。 Redis OMを使用すると、ハッシュとJSONドキュメントを定義したクラスにマッピングすることで、Node.jsアプリケーションにRedisを簡単に追加できます。複雑なコマンドは必要ありません。流暢なインターフェイスを備えた純粋なコードだけです。ご覧ください。

エンティティを定義する:

新しいエンティティを作成して保存します:

一致するエンティティを検索します:

このライブラリとすべてを書いたので、今はかなり偏見がありますが、それはかなりクールだと思います!この構文を詳しく見て、どのように機能するかを学びましょう。

仕組み

Redis OMforNode.jsで気にする必要のあるクラスは4つあります。それらは、エンティティ、スキーマ、クライアント、およびリポジトリです。

エンティティ 一緒に作業するクラスです。作成、読み取り、更新、および削除されるもの。検索されているもの。 Entityを拡張するクラスはすべてエンティティです。通常、1行のコードでエンティティを定義しますが、そこにカスタムロジックを追加することもできます:

スキーマ エンティティのフィールド、それらのタイプ、およびそれらがRedisに内部的にマッピングされる方法を定義します。デフォルトでは、エンティティはRedisのハッシュにマップされますが、JSONドキュメントにマップすることもできます:

スキーマを作成すると、渡したエンティティが変更され、定義したプロパティのゲッターとセッターが追加されます。これらのゲッターとセッターが受け入れて返すタイプは、上記のtypeプロパティで定義されます。

クライアント Redisに接続します。クライアントには、Redisに対してrawコマンドを開いたり、閉じたり、実行したりするためのメソッドがあります。主に開閉を使用します:

リポジトリをインスタンス化するには、スキーマとクライアントが必要です。 リポジトリ エンティティの読み取り、書き込み、および削除の手段を提供します。そしてそれらを検索する手段:

リポジトリができたら、それを使用してエンティティを作成、読み取り、更新、削除できます。ここでは、マッシュルームヘッドのお気に入りのアルバムでそれを行っています:

エンティティの検索にも使用できます:

また、コピーして貼り付けるのに便利なように、このサンプルを1つの大きなコードブロックとして示します。

そして、それは、彼らが言うように、Node.js用のRedisOMです。

まとめ

これは、Redis OMforNode.jsで実行できることの概要です。詳細については、RedisOMを使用して簡単なサービスを構築するためのチュートリアルがあります。さらに深く掘り下げたい場合は、GitHubのREADMEとAPIのドキュメントを確認してください。

もちろん、これはまだ実際にテストされていないまったく新しいソフトウェアです。 あなた その野生です。ぜひお試しください。タイヤを蹴ります。それを壊してみてください。そこに何があり、何があり得るかを見てください。そして、そのバグを見つけたり、その完璧な機能について考えたりしたら、問題を開くか、プルリクエストを送信して知らせてください。 RedisOMの改善にご協力いただきありがとうございます。ありがとう!


  1. Redisの10の簡単なヒント

    Redisは現在、技術コミュニティで注目を集めています。 Antirezの小さな個人的なプロジェクトから、メモリ内データストレージの業界標準になるまでには長い道のりがあります。これに伴い、Redisを適切に使用するためにほとんどの人が同意できる一連のベストプラクティスが提供されます。以下では、Redisを正しく使用するための10の簡単なヒントを紹介します。 1。キーの使用をやめる* さて、多分あなたに向かって叫ぶことはこの記事を始めるための素晴らしい方法ではありません。しかし、それはおそらく最も重要なポイントです。あまりにも頻繁に、redisインスタンスを見て、簡単なcommandstats

  2. ストラップ用のサーバーレスRedisキャッシング

    プロジェクトを時間どおりに提供するということは、通常、既存のテクノロジーを可能な限り活用する必要があることを意味します。カスタム実装につながるすべての決定は、独自のソリューションを維持する必要があることも考慮する必要があります。これが、Strapiのようなオープンソースツールが次のプロジェクトのRESTAPIを構築するための方法である理由です。 ストラピは最先端のヘッドレスCMSです。グラフィカルインターフェイスを使用してスキーマを定義できるため、技術者でない人でもデータをモデル化できます。開発チームは、バックエンドの実装について心配することなく、Webアプリとモバイルアプリの構築と新機能の