`|Redis Documentation| `_ **SubstrCommand: Contents**   `SUBSTR \_key\_ \_start\_ \_end\_ <#SUBSTR%20_key_%20_start_%20_end_>`_   `GETRANGE \_key\_ \_start\_ \_end\_ <#GETRANGE%20_key_%20_start_%20_end_>`_     `Return value <#Return%20value>`_     `Examples <#Examples>`_ SubstrCommand ============= #sidebar `StringCommandsSidebar `_ SUBSTR \_key\_ \_start\_ \_end\_ ================================ GETRANGE \_key\_ \_start\_ \_end\_ ================================== *Time complexity: O(start+n) (with start being the start index and n the total length of the requested range). Note that the lookup part of this command is O(1) so for small strings this is actually an O(1) command.***Warning:** this command was renamed into GETRANGE. SUBSTR will be taken as an alias until the next major release of Redis. Return a subset of the string from offset *start* to offset *end*(both offsets are inclusive).Negative offsets can be used in order to provide an offset starting fromthe end of the string. So -1 means the last char, -2 the penultimate andso forth. The function handles out of range requests without raising an error, butjust limiting the resulting range to the actual length of the string. Return value ------------ `Bulk reply `_ Examples -------- :: redis> set s "This is a string" OK redis> substr s 0 3 "This" redis> substr s -3 -1 "ing" redis> substr s 0 -1 "This is a string" redis> substr s 9 100000 " string" .. |Redis Documentation| image:: redis.png