# rpoplpush

### 1. 基本語法

#### rpoplpus&#x68;**(`source` , `destination`, `callback`)**&#x20;

`source`、`destination`對應的是Redis中串列的`key`，**rpoplpush**&#x5C07;**`source`** 列表最後一個元素移除，並將移除的元素新&#x589E;**`destination`**&#x5217;表作為第一個元&#x7D20;**。**

![rpoplpush示意圖](https://224613336-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mb64kSCne8LKJiDOD49%2F-Mcrxpr4YW-5-GcwLdgx%2F-Mcs7jUMJanmqs4v-oEa%2F%E7%B4%A0%E6%9D%90.004.jpeg?alt=media\&token=ef3bc2cf-1bc6-405b-9a5b-ab3beba2784e)

### 2. 範例

(1) 實作**rpoplpush**之前，先創建**source**列表資料。

{% tabs %}
{% tab title="TypeScript" %}
```typescript
const source_list = ['iphone4', 'iphone3', 'iphone2', 'iphone1'];
client.rpush('src', source_list);
client.lrange('src', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Reply: iphone4,iphone3,iphone2,iphone1
```
{% endtab %}
{% endtabs %}

(2) 第一次執行**rpoplpush，`destination`**&#x5217;表不需要事先創&#x5EFA;**。**

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.rpoplpush('src', 'dst', (err, popItem) => {
    console.log('First pop:', popItem);
});
client.lrange('src', 0, -1, redis.print);
client.lrange('dst', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
First pop: iphone4
Reply: iphone1,iphone2,iphone3
Reply: iphone4
```
{% endtab %}
{% endtabs %}

(2) 第二次執行**rpoplpush**

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.rpoplpush('src', 'dst', (err, popItem) => {
    console.log('Second pop:', popItem);
});
client.lrange('src', 0, -1, redis.print);
client.lrange('dst', 0, -1, redis.print);
```
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Output-TS" %}
```
Second pop: iphone3
Reply: iphone1,iphone2
Reply: iphone3,iphone4
```
{% endtab %}
{% endtabs %}





{% tabs %}
{% tab title="TypeScript" %}
```typescript
```
{% endtab %}
{% endtabs %}

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









{% tabs %}
{% tab title="TypeScript" %}
```typescript
```
{% endtab %}
{% endtabs %}

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



