# linsert

### 1. 基本語法

#### linser&#x74;**(`key` , `'BEFORE' | 'AFTER'`, `pivot` , `value` ,`callback`)**&#x20;

將`value`安插在列表中`pivot`元素之前或之後，並回傳安插後的列表長度；如果`key`不存在，則不進行任何動作；如果`key`存在但`pivot`不存在於列表中，則不進行動作並回傳-1。

### 2. 範例

#### (1) 在列表中的World字串之前安插Beautiful字串。

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.del('foo');

const foo_list = ['Hello', 'World'];
client.rpush('foo', foo_list);
client.lrange('foo', 0, -1, redis.print);

client.linsert('foo', 'BEFORE', 'World', 'Beautiful', redis.print);
client.lrange('foo', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: Hello,World
Reply: 3
Reply: Hello,Beautiful,World
```
{% endtab %}
{% endtabs %}

#### (2) **`pivot`**&#x5143;素不存在於列表，不更動列表，並回傳-1。

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.linsert('foo', 'BEFORE', 'WORLD', 'Pretty', redis.print);
client.lrange('foo', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: -1
Reply: Hello,Beautiful,World
```
{% endtab %}
{% endtabs %}

