diff --git a/packages/backend/src/core/MetaService.ts b/packages/backend/src/core/MetaService.ts
index 4099e340be..5ae9a6fc83 100644
--- a/packages/backend/src/core/MetaService.ts
+++ b/packages/backend/src/core/MetaService.ts
@@ -1,6 +1,6 @@
 import { Inject, Injectable } from '@nestjs/common';
 import { DataSource } from 'typeorm';
-import type { UsersRepository } from '@/models/index.js';
+import Redis from 'ioredis';
 import { DI } from '@/di-symbols.js';
 import { Meta } from '@/models/entities/Meta.js';
 import type { OnApplicationShutdown } from '@nestjs/common';
@@ -11,19 +11,27 @@ export class MetaService implements OnApplicationShutdown {
 	private intervalId: NodeJS.Timer;
 
 	constructor(
+		@Inject(DI.redisSubscriber)
+		private redisSubscriber: Redis.Redis,
+
 		@Inject(DI.db)
 		private db: DataSource,
 	) {
+		this.onMessage = this.onMessage.bind(this);
+
 		if (process.env.NODE_ENV !== 'test') {
 			this.intervalId = setInterval(() => {
 				this.fetch(true).then(meta => {
+					// fetch内でもセットしてるけど仕様変更の可能性もあるため一応
 					this.cache = meta;
 				});
-			}, 1000 * 10);
+			}, 1000 * 60 * 5);
 		}
+
+		this.redisSubscriber.on('message', this.onMessage);
 	}
 
-	async fetch(noCache = false): Promise<Meta> {
+	public async fetch(noCache = false): Promise<Meta> {
 		if (!noCache && this.cache) return this.cache;
 	
 		return await this.db.transaction(async transactionalEntityManager => {
@@ -56,8 +64,25 @@ export class MetaService implements OnApplicationShutdown {
 			}
 		});
 	}
-	
+
+	private async onMessage(_, data) {
+		const obj = JSON.parse(data);
+
+		if (obj.channel === 'internal') {
+			const { type, body } = obj.message;
+			switch (type) {
+				case 'metaUpdated': {
+					this.cache = body;
+					break;
+				}
+				default:
+					break;
+			}
+		}
+	}
+
 	public onApplicationShutdown(signal?: string | undefined) {
 		clearInterval(this.intervalId);
+		this.redisSubscriber.off('message', this.onMessage);
 	}
 }
diff --git a/packages/backend/src/server/api/endpoints/admin/update-meta.ts b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
index 968ed4d26d..0ab0780e3d 100644
--- a/packages/backend/src/server/api/endpoints/admin/update-meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/update-meta.ts
@@ -5,6 +5,7 @@ import { ModerationLogService } from '@/core/ModerationLogService.js';
 import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits.js';
 import { Endpoint } from '@/server/api/endpoint-base.js';
 import { DI } from '@/di-symbols.js';
+import { GlobalEventService } from '@/core/GlobalEventService.js';
 
 export const meta = {
 	tags: ['admin'],
@@ -115,6 +116,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
 		@Inject(DI.db)
 		private db: DataSource,
 
+		private globalEventService: GlobalEventService,
 		private moderationLogService: ModerationLogService,
 	) {
 		super(meta, paramDef, async (ps, me) => {
@@ -436,7 +438,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
 				set.enableActiveEmailValidation = ps.enableActiveEmailValidation;
 			}
 
-			await this.db.transaction(async transactionalEntityManager => {
+			const updated = await this.db.transaction(async transactionalEntityManager => {
 				const metas = await transactionalEntityManager.find(Meta, {
 					order: {
 						id: 'DESC',
@@ -447,11 +449,21 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
 
 				if (meta) {
 					await transactionalEntityManager.update(Meta, meta.id, set);
+
+					const metas = await transactionalEntityManager.find(Meta, {
+						order: {
+							id: 'DESC',
+						},
+					});
+
+					return metas[0];
 				} else {
-					await transactionalEntityManager.save(Meta, set);
+					return await transactionalEntityManager.save(Meta, set);
 				}
 			});
 
+			this.globalEventService.publishInternalEvent('metaUpdated', updated);
+
 			this.moderationLogService.insertModerationLog(me, 'updateMeta');
 		});
 	}
diff --git a/packages/backend/src/server/api/stream/types.ts b/packages/backend/src/server/api/stream/types.ts
index 000f9a25dd..ec05be56ee 100644
--- a/packages/backend/src/server/api/stream/types.ts
+++ b/packages/backend/src/server/api/stream/types.ts
@@ -13,6 +13,7 @@ import type { Signin } from '@/models/entities/Signin.js';
 import type { Page } from '@/models/entities/Page.js';
 import type { Packed } from '@/misc/schema.js';
 import type { Webhook } from '@/models/entities/Webhook.js';
+import type { Meta } from '@/models/entities/Meta.js';
 import type Emitter from 'strict-event-emitter-types';
 import type { EventEmitter } from 'events';
 
@@ -29,6 +30,7 @@ export interface InternalStreamTypes {
 	antennaCreated: Antenna;
 	antennaDeleted: Antenna;
 	antennaUpdated: Antenna;
+	metaUpdated: Meta,
 }
 
 export interface BroadcastTypes {