+ private setObject (key: string, obj: { [ id: string ]: string }, expirationMilliseconds: number) {
+ return new Promise<void>((res, rej) => {
+ this.client.hmset(this.prefix + key, obj, (err, ok) => {
+ if (err) return rej(err)
+ if (!ok) return rej(new Error('Redis mset result is not OK.'))
+
+ this.client.pexpire(this.prefix + key, expirationMilliseconds, (err, ok) => {
+ if (err) return rej(err)
+ if (!ok) return rej(new Error('Redis expiration result is not OK.'))
+
+ return res()
+ })
+ })
+ })
+ }
+
+ private getObject (key: string) {
+ return new Promise<{ [ id: string ]: string }>((res, rej) => {
+ this.client.hgetall(this.prefix + key, (err, value) => {
+ if (err) return rej(err)
+
+ return res(value)
+ })
+ })
+ }
+
+ private exists (key: string) {
+ return new Promise<boolean>((res, rej) => {
+ this.client.exists(this.prefix + key, (err, existsNumber) => {
+ if (err) return rej(err)
+
+ return res(existsNumber === 1)
+ })
+ })