Node.jsアプリからRedisサーバーで動作する最も人気のあるライブラリの1つは、node-redis
です。 、https://github.com/NodeRedis/node-redisで入手できます。
プロジェクトにライブラリをインストールします:
npm install redis
ヒント:最初に
npm init -y
を実行することを忘れないでください プロジェクトが新しく、package.json
がない場合 すでにファイルしています。
ライブラリをインストールしたら、
を使用してプロジェクトでライブラリを要求します。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')