sql >> データベース >  >> NoSQL >> Redis

Node.jsからRedisを使用する方法

    Node.jsアプリからRedisサーバーで動作する最も人気のあるライブラリの1つは、node-redisです。 、https://github.com/NodeRedis/node-redisで入手できます。

    プロジェクトにライブラリをインストールします:

    npm install redis

    ヒント:最初にnpm init -yを実行することを忘れないでください プロジェクトが新しく、package.jsonがない場合 すでにファイルしています。

    Redisインスタンスに接続します

    ライブラリをインストールしたら、

    を使用してプロジェクトでライブラリを要求します。
    const redis = require('redis')

    または

    import redis from 'redis'

    redisを入手したら オブジェクト、

    を使用して新しいクライアントを作成します
    const client = redis.createClient({
      url: 'redis://YOUR REDIS INSTANCE URL'
    })

    (非同期関数内で)を使用して接続します:

    await client.connect()

    クライアントができたら、Redisが実行できることがわかっているすべてのことを実行できます。

    接続を閉じるには、次の電話番号に電話してください:

    client.quit()
    キー値の保存と取得

    set()を使用して、キーと値のペアをredisに格納します :

    client.set("<key>", "<value>")

    例:

    client.set("name", "Flavio")
    client.set("age", 37)

    KEYS *を実行する場合 redis-cliで クリーンなRedisサーバーでは、次の2つのキーが表示されます。

    get()を使用して、キーに格納されている値を取得できます :

    const value = await client.get("name")

    を使用してキー/値の文字列を削除します
    client.del("names")
    リストの操作

    Redisでは、

    を使用してリストを操作できます。
    • LPUSH
    • RPUSH
    • LTRIM
    • LRANGE

    Redisモジュールで導入したコマンド。それらはclientとして直接マッピングされます オブジェクトメソッド。

    を使用してリストを作成します
    client.lPush('names', 'Flavio')

    リストの一番下に新しいアイテムをプッシュします:

    client.rPush('names', 'Roger')

    またはリストの一番上:

    client.lPush('names', 'Syd')

    次を使用して、リスト内のすべてのアイテムを一覧表示します:

    const result = await client.lRange('names', 0, -1)
    //result is [ 'Roger', 'Flavio', 'Syd' ]
    

    を使用してリストからアイテムを削除します
    client.rPop('names')

    を使用してリストを削除します
    client.del('names')
    セットの操作

    Redisでは、

    を使用してセットを操作します
    • SADD
    • SPOP
    • SMEMBERS

    およびその他のRedisコマンド。clientとして直接マップされます。 オブジェクトメソッド。

    を使用してセットを作成します
    client.sAdd('names', 'Flavio')

    セットにアイテムを追加します:

    client.sAdd('names', 'Roger')

    一度に複数のものを追加できます:

    client.sAdd('names', 'Roger', 'Syd')

    配列を渡すことによっても:

    const names = ['Flavio', 'Roger', 'Syd']
    client.sAdd('names', names)

    以下を使用して、セット内のすべてのアイテムを一覧表示します:

    const names = await client.sMembers('names')

    以下を使用して、セットからランダムなアイテムをドロップします:

    client.sPop('names')

    複数のランダムなアイテムをドロップするには、2番目のパラメーターを追加します:

    client.sPop('names', 3)

    を使用してセットを削除します
    client.del('names')
    ハッシュの操作

    Redisでは、以下を含む一連のコマンドを使用してハッシュを処理します

    • HMSET
    • HGETALL
    • HSET
    • HINCRBY

    およびRedisモジュールで導入したその他のコマンドは、clientとして直接マップされます。 オブジェクトメソッド。

    を使用してハッシュを作成します
    client.hSet('person:1', 'name', 'Flavio', 'age', 37)

    ユーザーのすべてのプロパティを取得するには、HGETALLを使用します:

    const items = client.hGetAll('person:1')

    HSETを使用してハッシュプロパティを更新できます:

    client.hSet('person:1', 'age', 38)

    HINCRBYを使用して、ハッシュに格納されている値をインクリメントできます:

    client.hIncrBy('person:1', 'age', 1)

    を使用してハッシュを削除します
    client.del('person:1')
    サブスクリプション

    サブスクリプションはRedisのすばらしい機能であり、Node.jsで本当に素晴らしいことを実行できるようになります。

    パブリッシャーはチャネルでメッセージを送信します。複数のサブスクライバーがそれを受け取ります。

    を使用してチャンネルに登録する
    await subscriber.subscribe('dogs', (message) => {
      console.log(message);
    })

    client.publish('<channel>', '<message>')を使用してチャネルに公開します

    client.publish('dogs', 'Roger')

    同じclientからパブリッシュおよびサブスクライブすることはできないことに注意してください インスタンス。

    同じアプリでこれを行うには、2つのクライアントを作成します。

    const subscriber = redis.createClient({ ... })
    const publisher = redis.createClient({ ... })
    
    await subscriber.subscribe('dogs', (message) => {
      console.log(channel, message);
    })
    
    publisher.publish('dogs', 'Roger')

    1. MongoDB2.1名前に一致する配列要素の集約フレームワークの合計

    2. Redisの一括挿入の使用方法は?

    3. ネストされたjavascriptオブジェクトをredisに保存する-NodeJS

    4. mongodbでの日付比較