aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/redis.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/redis.ts')
-rw-r--r--server/lib/redis.ts44
1 files changed, 29 insertions, 15 deletions
diff --git a/server/lib/redis.ts b/server/lib/redis.ts
index 4dcbcddb5..52766663a 100644
--- a/server/lib/redis.ts
+++ b/server/lib/redis.ts
@@ -1,4 +1,4 @@
1import { createClient } from 'redis' 1import { createClient, RedisClientOptions, RedisModules } from 'redis'
2import { exists } from '@server/helpers/custom-validators/misc' 2import { exists } from '@server/helpers/custom-validators/misc'
3import { sha256 } from '@shared/extra-utils' 3import { sha256 } from '@shared/extra-utils'
4import { logger } from '../helpers/logger' 4import { logger } from '../helpers/logger'
@@ -37,29 +37,43 @@ class Redis {
37 37
38 this.client = createClient(Redis.getRedisClientOptions()) 38 this.client = createClient(Redis.getRedisClientOptions())
39 39
40 logger.info('Connecting to redis...')
41
40 this.client.connect() 42 this.client.connect()
41 .then(() => { this.connected = true }) 43 .then(() => {
42 .catch(err => { 44 logger.info('Connected to redis.')
45
46 this.connected = true
47 }).catch(err => {
43 logger.error('Cannot connect to redis', { err }) 48 logger.error('Cannot connect to redis', { err })
44 process.exit(-1) 49 process.exit(-1)
45 }) 50 })
46 51
47 this.client.on('error', err => {
48 logger.error('Error in Redis client.', { err })
49 process.exit(-1)
50 })
51
52 this.prefix = 'redis-' + WEBSERVER.HOST + '-' 52 this.prefix = 'redis-' + WEBSERVER.HOST + '-'
53 } 53 }
54 54
55 static getRedisClientOptions () { 55 static getRedisClientOptions () {
56 return Object.assign({}, 56 let config: RedisClientOptions<RedisModules, {}> = {
57 CONFIG.REDIS.AUTH ? { password: CONFIG.REDIS.AUTH } : {}, 57 socket: {
58 (CONFIG.REDIS.DB) ? { db: CONFIG.REDIS.DB } : {}, 58 connectTimeout: 20000 // Could be slow since node use sync call to compile PeerTube
59 (CONFIG.REDIS.HOSTNAME && CONFIG.REDIS.PORT) 59 }
60 ? { host: CONFIG.REDIS.HOSTNAME, port: CONFIG.REDIS.PORT } 60 }
61 : { path: CONFIG.REDIS.SOCKET } 61
62 ) 62 if (CONFIG.REDIS.AUTH) {
63 config = { ...config, password: CONFIG.REDIS.AUTH }
64 }
65
66 if (CONFIG.REDIS.DB) {
67 config = { ...config, database: CONFIG.REDIS.DB }
68 }
69
70 if (CONFIG.REDIS.HOSTNAME && CONFIG.REDIS.PORT) {
71 config.socket = { ...config.socket, host: CONFIG.REDIS.HOSTNAME, port: CONFIG.REDIS.PORT }
72 } else {
73 config.socket = { ...config.socket, path: CONFIG.REDIS.SOCKET }
74 }
75
76 return config
63 } 77 }
64 78
65 getClient () { 79 getClient () {