'Check whether a destroy and create is required to synchronize cluster.'

def _requires_destroy_and_create(self):

    unmodifiable_data = {'node_type': self.data['CacheNodeType'], 'engine': self.data['Engine'], 'cache_port': self._get_port()}
    if (self.zone is not None):
        unmodifiable_data['zone'] = self.data['PreferredAvailabilityZone']
    for (key, value) in unmodifiable_data.iteritems():
        if ((getattr(self, key) is not None) and (getattr(self, key) != value)):
            return True
    return False
