Builder for REDIS requests that will be encoded according to the RESP protocol was introduced in Redis 1.2.
Which became the standard way for talking with the Redis server in Redis 2.0.
Redis protocol documentation states:
Clients send commands to a Redis server as a RESP Array of Bulk Strings.
So all non String/Bulk types will be encoded to Bulk for convenience.
The response received from the REDIS server. Redis responses can have several representations:
Due to the dynamic nature the response object will try to cast the received response to the desired type. A special case should be noted that multi responses are also handled by the response object as it implements the iterable interface. So in this case constructs like for loops on the response will give you access to the underlying elements.