# lrange

### 1. 基本語法

#### lrang&#x65;**(`key` , `start:<integer>`, `stop:<integer>`, `callback`)**&#x20;

**lrange**是對列表資料取值的主要方法，透&#x904E;**`start`**&#x8207;**`stop`**&#x53C3;數決定所取&#x7684;**`index`**&#x7BC4;圍。

| Index | 0 (-5) | 1 (-4) | 2 (-3) | 3 (-2) | 4 (-1) |
| ----- | ------ | ------ | ------ | ------ | ------ |
| value | U001   | U002   | U003   | U004   | U005   |

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.lpush('uid:2', 'U001', 'U002', 'U003','U004', 'U005');
client.lrange('uid:2', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: U001,U002,U003,U004,U005
```
{% endtab %}
{% endtabs %}

### 2. 範例

#### (1) LIST取單個元素

{% hint style="info" %}
該用法與[**lindex**](https://app.gitbook.com/@aiii-mike/s/redis/~/drafts/-McsKa15GnPWXpiyRSUD/command/list/lindex)功能相同
{% endhint %}

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.lrange('uid:2', 2, 2, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: U003
```
{% endtab %}
{% endtabs %}

#### (2) 錯誤情境：參數`Start`對應Index比`Stop` 來得大

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.lrange('uid:2', 4, 0, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: 
```
{% endtab %}
{% endtabs %}

#### (3) 錯誤情境：參數範圍無資料

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.lrange('uid:2', 5, 7, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: 
```
{% endtab %}
{% endtabs %}



