`|Redis Documentation| `_
**LrangeCommand: Contents**
`LRANGE \_key\_ \_start\_ \_end\_ <#LRANGE%20_key_%20_start_%20_end_>`_
`Consistency with range functions in various programming languages <#Consistency%20with%20range%20functions%20in%20various%20programming%20languages>`_
`Out-of-range indexes <#Out-of-range%20indexes>`_
`Return value <#Return%20value>`_
LrangeCommand
=============
#sidebar `ListCommandsSidebar `_
LRANGE \_key\_ \_start\_ \_end\_
================================
*Time complexity: O(start+n) (with n being the length of the range and start being the start offset)*Return
the specified elements of the list stored at the specified key.
Start and end are zero-based indexes. 0 is the first element of the
list (the list head), 1 the next element and so on.
For example LRANGE foobar 0 2 will return the first three elements
of the list.
*start* and *end* can also be negative numbers indicating offsets
from the end of the list. For example -1 is the last element of the
list, -2 the penultimate element and so on.
Consistency with range functions in various programming languages
-----------------------------------------------------------------
Note that if you have a list of numbers from 0 to 100, LRANGE 0 10
will return 11 elements, that is, rightmost item is included. This
**may or may not** be consistent with behavior of range-related
functions in your programming language of choice (think Ruby's
Range.new, Array#slice or Python's range() function).
LRANGE behavior is consistent with one of Tcl.
Out-of-range indexes
--------------------
Indexes out of range will not produce an error: if start is over
the end of the list, or start ``>`` end, an empty list is returned.
If end is over the end of the list Redis will threat it just like
the last element of the list.
Return value
------------
`Multi bulk reply `_, specifically a list of
elements in the specified range.
.. |Redis Documentation| image:: redis.png