@bridgebase/redis
v0.2.1
Published
BridgeBase Redis Adapter - Native Redis client wrapper with BridgeBase gateway integration
Maintainers
Readme
@bridgebase/redis
Redis adapter for BridgeBase - Native Redis client with gateway integration.
Features
- Minimal Abstraction - Direct pass-through to native Redis client
- Gateway Integration - Automatic proxy tunnel setup via BridgeBase
- Full Redis Support - Access to all Redis commands and options
- Connection Pooling - Leverage Redis client connection management
Installation
npm install @bridgebase/redisQuick Start
import { connectRedis } from "@bridgebase/redis";
const session = await connectRedis("your-jwt-token", { db: 0 });
const redis = session.client; // Access native Redis client
// Use native Redis client
await redis.set("key", "value");
const value = await redis.get("key");
console.log(value);
await session.disconnect();Factory Functions
connectRedis()
Creates a session and automatically connects:
const session = await connectRedis(jwtToken, {
db?: number; // Redis database number (default: 0)
apiBaseUrl?: string; // BridgeBase API endpoint
});
const redis = session.client; // Native Redis clientredis()
Alias for connectRedis():
const session = await redis(jwtToken, options);createRedisSession()
Creates a session without auto-connecting:
const session = createRedisSession(jwtToken, options);
const redis = await session.connect(); // Manual connectUsing Native Redis Client
Once connected, you have full access to the native Redis client:
import { connectRedis } from "@bridgebase/redis";
const session = await connectRedis(token);
const redis = session.client;
// All native Redis commands available
await redis.set("key", "value");
await redis.incr("counter");
await redis.hincrby("hash", "field", 1);
// Transactions
const result = await redis
.multi()
.set("key1", "value1")
.set("key2", "value2")
.exec();
// Subscriptions
const subscriber = redis.duplicate();
await subscriber.subscribe("channel", (message) => {
console.log(message);
});Error Handling
import { ConnectionError, GatewayResolutionError } from "@bridgebase/redis";
try {
const session = await connectRedis(token);
const redis = session.client;
await redis.set("key", "value");
} catch (error) {
if (error instanceof GatewayResolutionError) {
console.error("Failed to resolve gateway");
} else if (error instanceof ConnectionError) {
console.error("Failed to connect to Redis");
}
} finally {
await session?.disconnect();
}Cleanup
const session = await connectRedis(token);
try {
const redis = session.client;
// Use the client
} finally {
await session.disconnect();
}License
MIT
