# exists

### 1. 基本語法

#### **exist(`key` , `callback`)**&#x20;

確&#x5B9A;**`key`**&#x540D;稱是否存在資料，存在則回傳1，不存在則回傳0。

### 2. 範例&#x20;

#### (1) **確認`key`名稱是否已被使用**

{% tabs %}
{% tab title="TypeScript" %}
```typescript
client.set('foo', 'bar');
client.exists('foo',redis.print);
client.exists('woo',redis.print);
```
{% endtab %}
{% endtabs %}

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

#### (2) 情境：**`key`**&#x503C;存在則讀取(get)，不存在則新增(set)

透&#x904E;**`callback`**&#x53D6;得回傳值，並置入條件句進行判斷。_**以下程式碼重複執行兩次後**_，所得到的結果並不同：第一&#x6B21;**`key`**&#x503C;不存在，因此新增&#x8A72;**`key`**&#x540D;稱與資料；第二次由於&#x8A72;**`key`**&#x503C;已存在，因此回傳資料內容。

```typescript
const mykey = 'new_foo';
client.exists(mykey, (err, isExist)=>{
    if (isExist){
        console.log('[key exist]');
        client.get(mykey, redis.print);
    }else{
        console.log('[new key]');
        client.set(mykey, 'new_bar', redis.print);
    }
}); 
```

{% tabs %}
{% tab title="Bash-TS" %}
```bash
[new key]
Reply: OK
----------
[key exist]
Reply: new_bar
```
{% endtab %}
{% endtabs %}

