提交 6faeb435 authored 作者: zzy's avatar zzy

#17 add url for redisOptions

上级 53eda8f2
...@@ -56,17 +56,17 @@ export default { ...@@ -56,17 +56,17 @@ export default {
password: process.env.REDIS_PASSWORD, password: process.env.REDIS_PASSWORD,
keyPrefix: process.env.REDIS_PRIFIX, keyPrefix: process.env.REDIS_PRIFIX,
} }
Or
export default {
url: 'redis://:authpassword@127.0.0.1:6380/4',
}
``` ```
With multi client With multi client
```typescript ```typescript
export default [ export default [
{ {
name:'test1', name:'test1',
host: process.env.REDIS_HOST, url: 'redis://:authpassword@127.0.0.1:6380/4',
port: parseInt(process.env.REDIS_PORT),
db: parseInt(process.env.REDIS_DB),
password: process.env.REDIS_PASSWORD,
keyPrefix: process.env.REDIS_PRIFIX,
}, },
{ {
name:'test2', name:'test2',
...@@ -101,6 +101,7 @@ interface RedisOptions { ...@@ -101,6 +101,7 @@ interface RedisOptions {
* client name. default is a uuid, unique. * client name. default is a uuid, unique.
*/ */
name?: string; name?: string;
url?: string;
port?: number; port?: number;
host?: string; host?: string;
/** /**
......
...@@ -17,19 +17,34 @@ exports.createClient = () => ({ ...@@ -17,19 +17,34 @@ exports.createClient = () => ({
if (clients.has(o.name)) { if (clients.has(o.name)) {
throw new RedisClientError(`client ${o.name} is exists`); throw new RedisClientError(`client ${o.name} is exists`);
} }
if (o.url) {
clients.set(o.name, new Redis(o.url));
}
else {
clients.set(o.name, new Redis(o)); clients.set(o.name, new Redis(o));
} }
}
else { else {
if (clients.has(defaultKey)) { if (clients.has(defaultKey)) {
throw new RedisClientError('default client is exists'); throw new RedisClientError('default client is exists');
} }
if (o.url) {
clients.set(defaultKey, new Redis(o.url));
}
else {
clients.set(defaultKey, new Redis(o)); clients.set(defaultKey, new Redis(o));
} }
} }
} }
}
else {
if (options.url) {
clients.set(defaultKey, new Redis(options.url));
}
else { else {
clients.set(defaultKey, new Redis(options)); clients.set(defaultKey, new Redis(options));
} }
}
return { return {
defaultKey, defaultKey,
clients, clients,
......
...@@ -2,6 +2,7 @@ import { ModuleMetadata } from '@nestjs/common/interfaces'; ...@@ -2,6 +2,7 @@ import { ModuleMetadata } from '@nestjs/common/interfaces';
import { RedisOptions } from 'ioredis'; import { RedisOptions } from 'ioredis';
export interface RedisModuleOptions extends RedisOptions { export interface RedisModuleOptions extends RedisOptions {
name?: string; name?: string;
url?: string;
} }
export interface RedisModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> { export interface RedisModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
useFactory?: (...args: any[]) => RedisModuleOptions | RedisModuleOptions[] | Promise<RedisModuleOptions> | Promise<RedisModuleOptions[]>; useFactory?: (...args: any[]) => RedisModuleOptions | RedisModuleOptions[] | Promise<RedisModuleOptions> | Promise<RedisModuleOptions[]>;
......
...@@ -22,17 +22,29 @@ export const createClient = () => ({ ...@@ -22,17 +22,29 @@ export const createClient = () => ({
if (clients.has(o.name)) { if (clients.has(o.name)) {
throw new RedisClientError(`client ${o.name} is exists`); throw new RedisClientError(`client ${o.name} is exists`);
} }
if (o.url) {
clients.set(o.name, new Redis(o.url));
} else {
clients.set(o.name, new Redis(o)); clients.set(o.name, new Redis(o));
}
} else { } else {
if (clients.has(defaultKey)) { if (clients.has(defaultKey)) {
throw new RedisClientError('default client is exists'); throw new RedisClientError('default client is exists');
} }
if (o.url) {
clients.set(defaultKey, new Redis(o.url));
} else {
clients.set(defaultKey, new Redis(o)); clients.set(defaultKey, new Redis(o));
} }
} }
}
} else {
if (options.url) {
clients.set(defaultKey, new Redis(options.url));
} else { } else {
clients.set(defaultKey, new Redis(options)); clients.set(defaultKey, new Redis(options));
} }
}
return { return {
defaultKey, defaultKey,
clients, clients,
......
...@@ -2,7 +2,8 @@ import { ModuleMetadata } from '@nestjs/common/interfaces'; ...@@ -2,7 +2,8 @@ import { ModuleMetadata } from '@nestjs/common/interfaces';
import { RedisOptions } from 'ioredis'; import { RedisOptions } from 'ioredis';
export interface RedisModuleOptions extends RedisOptions { export interface RedisModuleOptions extends RedisOptions {
name?: string; name?: string
url?: string
} }
export interface RedisModuleAsyncOptions export interface RedisModuleAsyncOptions
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论