refactored and bug fixed(redis,blob,&&)