npm install redis
Operating System: Ubuntu 24.04.3 LTS / x86_64
Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
npm install ioredis
Operating System: Ubuntu 24.04.3 LTS / x86_64
Runtime Version: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
インスタンスID:パスワード形式を使用し、カスタムアカウントはユーザー名@パスワード形式を使用します。パスワード不要の認証インスタンスはパスワードが不要です。const { createClient } = require('redis');async function main() {// クライアント接続を作成します。const client = createClient({url: 'redis://192.xx.xx.2:6379', // インスタンスVIPアドレスpassword: 'crs-xxxx:パスワード', // デフォルトアカウントのパスワード形式:インスタンスID:パスワードsocket: {connectTimeout: 2000, // 接続タイムアウト(ミリ秒)reconnectStrategy: (retries) => {if (retries > 10) return new Error('Max retries reached');return Math.min(retries * 200, 3000); // 再接続バックオフポリシー}}});// エラー処理client.on('error', (err) => console.error('Redis Client Error:', err));client.on('connect', () => console.log('Redis connected'));client.on('reconnecting', () => console.log('Redis reconnecting...'));// 接続を確立します。await client.connect();// データを書き込みます。await client.set('name', 'Distributed Cache');// データを読み取ります。const value = await client.get('name');console.log('get name:', value);// 有効期限付きのKeyを設定します(EXの単位は秒)await client.set('session:user123', 'session_data', { EX: 3600 });// ハッシュ操作await client.hSet('user:1001', { name: '張三', age: '28' });const userInfo = await client.hGetAll('user:1001');console.log('user info:', userInfo);// リスト操作await client.lPush('queue:tasks', ['task1', 'task2', 'task3']);const task = await client.rPop('queue:tasks');console.log('dequeued task:', task);// 接続を閉じます。await client.quit();}main().catch(console.error);
const { createClient } = require('redis');async function main() {const client = createClient({url: 'redis://192.xx.xx.2:6379',password: 'myuser@MyPassword', // プロキシモードのカスタムアカウント:ユーザー名@パスワード全体をパスワードとして渡します。socket: {connectTimeout: 2000}});client.on('error', (err) => console.error('Redis Client Error:', err));await client.connect();await client.set('key', 'value');console.log(await client.get('key'));await client.quit();}main().catch(console.error);
const Redis = require('ioredis');// 接続を作成します(ioredisには接続プールと自動再接続の仕組みが組み込まれています)。const redis = new Redis({host: '192.xx.xx.2', // インスタンスのVIPアドレスport: 6379, // インスタンスポートpassword: 'crs-xxxx:パスワード', // デフォルトアカウントのパスワード形式:インスタンスID:パスワードdb: 0, // データベース番号connectTimeout: 2000, // 接続タイムアウト(ミリ秒)commandTimeout: 2000, // コマンドタイムアウト(ミリ秒)retryStrategy: (times) => {if (times > 10) return null; // 再試行回数を超えたため、再接続を停止します。return Math.min(times * 200, 3000);},maxRetriesPerRequest: 3, // リクエストごとの最大再試行回数enableReadyCheck: true, // 接続準備完了チェックlazyConnect: false // すぐに接続を確立します。});redis.on('connect', () => console.log('Redis connected'));redis.on('error', (err) => console.error('Redis error:', err));async function main() {// データを書き込みます。await redis.set('name', 'Distributed Cache');// データを読み取ります。const value = await redis.get('name');console.log('get name:', value);// 有効期限付きの Key を設定します。await redis.setex('session:user123', 3600, 'session_data');// Pipeline バッチ操作const pipeline = redis.pipeline();pipeline.set('key1', 'value1');pipeline.set('key2', 'value2');pipeline.set('key3', 'value3');pipeline.get('key1');pipeline.get('key2');pipeline.get('key3');const results = await pipeline.exec();console.log('pipeline results:', results);// 接続を閉じます。redis.disconnect();}main().catch(console.error);
const { createClient } = require('redis');const fs = require('fs');async function main() {const client = createClient({url: 'rediss://192.xx.xx.2:6379', // rediss:// プロトコルを使用してSSLを有効にします。password: 'crs-xxxx:パスワード',socket: {connectTimeout: 2000,tls: true,ca: fs.readFileSync('/path/to/ca.pem'), // CA証明書rejectUnauthorized: true}});client.on('error', (err) => console.error('Redis Client Error:', err));await client.connect();await client.set('ssl_test', 'encrypted_connection');console.log(await client.get('ssl_test'));await client.quit();}main().catch(console.error);
パラメータ | 説明 | 推奨値 |
url | 接続アドレス、形式: redis://host:port | - |
password | 認証パスワード | デフォルトアカウント形式: インスタンスID:パスワード |
socket.connectTimeout | 接続タイムアウト(ミリ秒) | 2000 |
socket.reconnectStrategy | 再接続バックオフ戦略 | 指数バックオフ、上限3000ms |
maxCommandRedirections | 最大リダイレクト回数(Clusterモード) | 3 |
パラメータ | 説明 | 推奨値 |
host | インスタンス接続アドレス | - |
port | インスタンスポート番号 | 6379 |
password | 認証パスワード | デフォルトアカウント形式: インスタンスID:パスワード |
connectTimeout | 接続タイムアウト(ミリ秒) | 2000 |
commandTimeout | コマンドタイムアウト(ミリ秒) | 2000 |
maxRetriesPerRequest | リクエストごとの最大再試行回数 | 3 |
maxRedirections | 最大リダイレクト回数(Clusterモード) | 3 |
reconnectStrategy の設定が正しいことを確認してください。フィードバック