From 869fb3468bed9fe83a16cef062d1b07eafeafb08 Mon Sep 17 00:00:00 2001 From: Emily J Date: Thu, 8 Oct 2020 13:10:06 +1100 Subject: [PATCH] incomplete but more performant redis module --- bot/util/redis-new.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 bot/util/redis-new.js diff --git a/bot/util/redis-new.js b/bot/util/redis-new.js new file mode 100644 index 0000000..3f1beef --- /dev/null +++ b/bot/util/redis-new.js @@ -0,0 +1,43 @@ +const redis = require('redis') +const generators = require('redis-async-gen') + +class Redis { + constructor(client) { + this.client = client; + } + + init () { + // Create redis client + this.global = redis.createClient(this.client.config.redis) + this.server = this.global.duplicate({ db: 1 }) + this.member = this.global.duplicate({ db: 2 }) + this.user = this.global.duplicate({ db: 3 }) + } + + // Deletes specified guild entry + async deleteGuild (id) { + this.server.del(id) + var { keysMatching } = await generators.using(this.member) + // eslint-disable-next-line no-unused-vars + for await (const key of keysMatching(id + '-*')) { + this.member.del(key) + } + } + + // Deletes specified user and their member entries in guilds + async deleteUser (id) { + this.user.del(id) + var { keysMatching } = await generators.using(this.member) + // eslint-disable-next-line no-unused-vars + for await (const key of keysMatching('*-' + id)) { + this.member.del(key) + } + } + + // Deletes member of user in specified guild + async deleteMember (guildId, id) { + this.member.del(guildId + '-' + id) + } +} + +module.exports = Redis \ No newline at end of file