Skip to content

Commit

Permalink
Improve Redis (#3815)
Browse files Browse the repository at this point in the history
* ioredis

* a
  • Loading branch information
mei23 committed Jun 23, 2022
1 parent 5756b1d commit b563873
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 48 deletions.
4 changes: 3 additions & 1 deletion .config/example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ mongodb:
redis:
host: localhost
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass

#prefix: example-prefix
#db: 0

### drive ###
drive:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
"http-signature": "git+https://github.com/mei23/node-http-signature#v1.6.0-mei",
"iconv": "3.0.1",
"insert-text-at-cursor": "0.3.0",
"ioredis": "4.28.5",
"ip-cidr": "3.0.7",
"is-svg": "4.3.2",
"js-yaml": "4.1.0",
Expand Down Expand Up @@ -176,7 +177,6 @@
"qrcode": "1.5.0",
"ratelimiter": "3.4.1",
"reconnecting-websocket": "4.4.0",
"redis": "3.1.2",
"redis-lock": "0.1.4",
"rename": "1.0.4",
"request-stats": "3.0.0",
Expand Down
1 change: 1 addition & 0 deletions src/config/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export type Source = {
redis: {
host: string;
port: number;
family?: number;
pass: string;
db?: number;
prefix?: string;
Expand Down
26 changes: 17 additions & 9 deletions src/db/redis.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
import * as redis from 'redis';
import * as Redis from 'ioredis';
import config from '../config';

export default config.redis ? redis.createClient(
config.redis.port,
config.redis.host,
{
function createConnection() {
return new Redis({
port: config.redis.port,
host: config.redis.host,
family: config.redis.family == null ? 0 : config.redis.family,
password: config.redis.pass,
prefix: config.redis.prefix,
db: config.redis.db || 0
}
) : null;
keyPrefix: `${config.redis.prefix}:`,
db: config.redis.db || 0,
});
}

export const subsdcriber = createConnection();
subsdcriber.subscribe(config.host);

export const redisClient = createConnection();

export default redisClient;
1 change: 1 addition & 0 deletions src/queue/initialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export function initialize<T>(name: string, limitPerSec = -1) {
redis: {
port: config.redis.port,
host: config.redis.host,
family: config.redis.family == null ? 0 : config.redis.family,
password: config.redis.pass,
db: config.redis.db || 0,
},
Expand Down
13 changes: 1 addition & 12 deletions src/server/api/streaming.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as http from 'http';
import * as websocket from 'websocket';
import * as redis from 'redis';
import { subsdcriber as redisSubscriber } from '../../db/redis';
import Xev from 'xev';

import MainStreamConnection from './stream';
Expand Down Expand Up @@ -42,17 +42,6 @@ module.exports = (server: http.Server) => {
let ev: EventEmitter;

if (config.redis) {
// Connect to Redis
const redisSubscriber = redis.createClient(
config.redis.port,
config.redis.host,
{
password: config.redis.pass
}
);

redisSubscriber.subscribe(config.host);

ev = new EventEmitter();

redisSubscriber.on('message', async (_, data) => {
Expand Down
13 changes: 1 addition & 12 deletions src/services/server-subscriber.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as redis from 'redis';
import config from '../config';
import { subsdcriber as subscriber } from '../db/redis';
import { EventEmitter } from 'events';

let ev: EventEmitter;
Expand All @@ -10,16 +9,6 @@ export function getServerSubscriber() {
}

function setupServerEv() {
const subscriber = redis.createClient(
config.redis.port,
config.redis.host,
{
password: config.redis.pass
}
);

subscriber.subscribe(config.host);

ev = new EventEmitter();

subscriber.on('message', async (_, data) => {
Expand Down
16 changes: 3 additions & 13 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2853,7 +2853,7 @@ delegates@^1.0.0:
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=

denque@^1.1.0, denque@^1.4.1, denque@^1.5.0:
denque@^1.1.0, denque@^1.4.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf"
integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
Expand Down Expand Up @@ -4331,7 +4331,7 @@ invert-kv@^1.0.0:
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=

ioredis@^4.28.5:
ioredis@4.28.5, ioredis@^4.28.5:
version "4.28.5"
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f"
integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==
Expand Down Expand Up @@ -7222,7 +7222,7 @@ reconnecting-websocket@4.4.0:
resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783"
integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==

redis-commands@1.7.0, redis-commands@^1.7.0:
redis-commands@1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89"
integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==
Expand All @@ -7244,16 +7244,6 @@ redis-parser@^3.0.0:
dependencies:
redis-errors "^1.0.0"

redis@3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/redis/-/redis-3.1.2.tgz#766851117e80653d23e0ed536254677ab647638c"
integrity sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==
dependencies:
denque "^1.5.0"
redis-commands "^1.7.0"
redis-errors "^1.2.0"
redis-parser "^3.0.0"

regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
Expand Down

0 comments on commit b563873

Please sign in to comment.