コンテンツにスキップ

Node.js Redisの使い方

node-redisを使用する

Usage

インストール

npm i redis

実装

import { createClient } from 'redis';

const client = createClient();

client.on('error', (err) => console.log('Redis Client Error', err));

await client.connect();

await client.set('key', 'value');
const value = await client.get('key');

上記のコードで簡単にインサートができる

127.0.0.1:6379> get key
"value"
デフォルトで接続されるポート番号は6379
違うポートに接続するには、インスタンス作成時にポート番号を指定する
redis[s]://[[username][:password]@][host][:port][/db-number]:
createClient({
    url: 'redis://alice:foobared@awesome.redis.server:6380'
});

RedisでJSONを扱う

RedisにJSONを格納するには、RedisサーバーにRedisJSON(Redisモジュール)をロードする
https://github.com/RedisJSON/RedisJSON

redis-server --loadmodule ./target/release/librejson.dylib

モジュールを読み込んだ状態でnode-redisから呼び出す

import { createClient } from 'redis';

const client = createClient();

client.on('error', (err) => console.log('Redis Client Error', err));

await client.connect();

await client.json.set('noderedis:jsondata', '$', {
    name: 'Roberta McDonald',
    pets: [
      {
        name: 'Rex',
        species: 'dog',
        age: 3,
        isMammal: true
      },
      {
        name: 'Goldie',
        species: 'fish',
        age: 2,
        isMammal: false
      }
    ]
});

const results = await client.json.get('noderedis:jsondata', {
    path: [
      '.pets[1].name',
      '.pets[1].age'
    ]
});

console.log(results);
// { '.pets[1].name': 'Goldie', '.pets[1].age': 2 }

Reference

node-redis
GitHub node-redis

RedisJSON
GitHub RedisJSON

Redis modules
How to cache JSON data in Redis with Node.js