diff --git a/README.md b/README.md index 6567fdf4..ad22f20f 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ new Redis({ }); ``` -You can also specify connection options as a [`redis://` URL](http://www.iana.org/assignments/uri-schemes/prov/redis): +You can also specify connection options as a [`redis://` URL](http://www.iana.org/assignments/uri-schemes/prov/redis) or [`rediss://` URL](https://www.iana.org/assignments/uri-schemes/prov/rediss) when using [TLS encryption](#tls-options): ```javascript // Connect to 127.0.0.1:6380, db 4, using password "authpassword": @@ -703,6 +703,12 @@ var redis = new Redis({ }); ``` +Alternatively, specify the connection through a [`rediss://` URL](https://www.iana.org/assignments/uri-schemes/prov/rediss). + +```javascript +var redis = new Redis("rediss://redis.my-service.com"); +``` +
## Sentinel diff --git a/lib/redis/index.ts b/lib/redis/index.ts index 0bed65e2..9524eee7 100644 --- a/lib/redis/index.ts +++ b/lib/redis/index.ts @@ -110,6 +110,7 @@ var debug = Debug("redis"); * var unixSocketRedis2 = new Redis('/tmp/echo.sock'); * var urlRedis = new Redis('redis://user:password@redis-service.com:6379/'); * var urlRedis2 = new Redis('//localhost:6379'); + * var urlRedisTls = new Redis('rediss://user:password@redis-service.com:6379/'); * var authedRedis = new Redis(6380, '192.168.100.1', { password: 'password' }); * ``` */ diff --git a/lib/utils/index.ts b/lib/utils/index.ts index b9676f16..a97bd288 100644 --- a/lib/utils/index.ts +++ b/lib/utils/index.ts @@ -260,7 +260,7 @@ export function parseURL(url) { result.password = parsed.auth.split(":")[1]; } if (parsed.pathname) { - if (parsed.protocol === "redis:") { + if (parsed.protocol === "redis:" || parsed.protocol === "rediss:") { if (parsed.pathname.length > 1) { result.db = parsed.pathname.slice(1); } @@ -274,6 +274,9 @@ export function parseURL(url) { if (parsed.port) { result.port = parsed.port; } + if (parsed.protocol === "rediss:") { + result.tls = true; + } defaults(result, parsed.query); return result; diff --git a/test/unit/utils.ts b/test/unit/utils.ts index 6aa90d8d..7993b12d 100644 --- a/test/unit/utils.ts +++ b/test/unit/utils.ts @@ -192,6 +192,16 @@ describe("utils", function() { expect(utils.parseURL("redis://127.0.0.1/")).to.eql({ host: "127.0.0.1" }); + expect( + utils.parseURL("rediss://user:pass@127.0.0.1:6380/4?key=value") + ).to.eql({ + tls: true, + host: "127.0.0.1", + port: "6380", + db: "4", + password: "pass", + key: "value" + }); }); });