update(key, value) {
        if (typeof value === "string" || Buffer.isBuffer(value)) {
            const derivedKey = parseInt(crypto.createHash(this.hashingAlgorithm).update(key).digest("hex").substring(0, 13), 16);
            const derivedValue = parseInt(crypto.createHash(this.hashingAlgorithm).update(value).digest("hex").substring(0, 13), 16);

            // An empty cache for the key will return undefined, which is != any hash. This saves a check :)
            if (this.cache.get(derivedKey) !== derivedValue) {
                this.cache.set(derivedKey, derivedValue);

                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }
Returns true if the new value differs from the stored one
otherwise returns false

Works with strings and buffers. Everything else will always return true

@param {string} key
@param {any} value
@return {boolean}