enhance: Redisをioredisに統一してIPv6サポート (#8869)

* Use ioredis, Supports IPv6 host

https://github.com/misskey-dev/misskey/issues/8862

* Fix import

* order

* a

* i

* fix

* flushdb

* family

* CHANGELOG

* redis_version

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
MeiMei
2022-06-24 19:22:19 +09:00
committed by GitHub
parent 1c2e2c4b06
commit 6f8e3fe366
9 changed files with 26 additions and 32 deletions

View File

@@ -19,6 +19,7 @@ export type Source = {
redis: {
host: string;
port: number;
family?: number;
pass: string;
db?: number;
prefix?: string;

View File

@@ -192,12 +192,13 @@ export const db = new DataSource({
synchronize: process.env.NODE_ENV === 'test',
dropSchema: process.env.NODE_ENV === 'test',
cache: !config.db.disableCache ? {
type: 'redis',
type: 'ioredis',
options: {
host: config.redis.host,
port: config.redis.port,
family: config.redis.family == null ? 0 : config.redis.family,
password: config.redis.pass,
prefix: `${config.redis.prefix}:query:`,
keyPrefix: `${config.redis.prefix}:query:`,
db: config.redis.db || 0,
},
} : false,
@@ -226,7 +227,7 @@ export async function initDb(force = false) {
export async function resetDb() {
const reset = async () => {
await redisClient.FLUSHDB();
await redisClient.flushdb();
const tables = await db.query(`SELECT relname AS "table"
FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')

View File

@@ -1,16 +1,15 @@
import * as redis from 'redis';
import Redis from 'ioredis';
import config from '@/config/index.js';
export function createConnection() {
return redis.createClient(
config.redis.port,
config.redis.host,
{
password: config.redis.pass,
prefix: config.redis.prefix,
db: config.redis.db || 0,
}
);
return new Redis({
port: config.redis.port,
host: config.redis.host,
family: config.redis.family == null ? 0 : config.redis.family,
password: config.redis.pass,
keyPrefix: `${config.redis.prefix}:`,
db: config.redis.db || 0,
});
}
export const subsdcriber = createConnection();

View File

@@ -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,
},

View File

@@ -99,12 +99,16 @@ export default define(meta, paramDef, async () => {
const fsStats = await si.fsSize();
const netInterface = await si.networkInterfaceDefault();
const redisServerInfo = await redisClient.info('Server');
const m = redisServerInfo.match(new RegExp('^redis_version:(.*)', 'm'));
const redis_version = m?.[1];
return {
machine: os.hostname(),
os: os.platform(),
node: process.version,
psql: await db.query('SHOW server_version').then(x => x[0].server_version),
redis: redisClient.server_info.redis_version,
redis: redis_version,
cpu: {
model: os.cpus()[0].model,
cores: os.cpus().length,