# Class: CacheClient

## CacheClient

Class representing and providing access to Ignite cache.

The class has no public constructor. An instance of this class should be obtained via the methods of IgniteClient objects. One instance of this class provides access to one Ignite cache which is specified during the instance obtaining and cannot be changed after that.

There are three groups of methods in the cache client:

- methods to configure the cache client
- methods to operate with the cache using Key-Value Queries
- methods to operate with the cache using SQL and Scan Queries

Source:
  - CacheClient.js, line 60

### Members

#### (static, readonly) PEEK_MODE

Peek modes

##### Properties:

Name | Type | Description
--- | --- | ---
`ALL` |  | 0
`NEAR` |  | 1
`PRIMARY` |  | 2
`BACKUP` |  | 3

Source:
  - CacheClient.js, line 28

### Methods

#### (async) clear()

Removes all entries from the cache, without notifying listeners and cache writers.

Source:
  - CacheClient.js, line 397

##### Throws:

if error.

Type
  IgniteClientError

#### (async) clearKey(key)

Removes entry with the specified key from the cache, without notifying listeners and cache writers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key to be removed.

Source:
  - CacheClient.js, line 414

##### Throws:

if error.

Type
  IgniteClientError

#### (async) clearKeys(keys)

Removes entries with the specified keys from the cache, without notifying listeners and cache writers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`keys` | Array.<*> | keys to be removed.

Source:
  - CacheClient.js, line 427

##### Throws:

if error.

Type
  IgniteClientError

#### (async) containsKey(key) → {Promise.<boolean>}

Checks if the specified key exists in the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key to check.

Source:
  - CacheClient.js, line 231

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the key exists, false otherwise.

Type
  Promise.<boolean>

#### (async) containsKeys(keys) → {Promise.<boolean>}

Checks if all the specified keys exist in the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`keys` | Array.<*> | keys to check.

Source:
  - CacheClient.js, line 247

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if all the keys exist, false if at least one of the keys does not exist in the cache.

Type
  Promise.<boolean>

#### (async) get(key) → {Promise.<*>}

Retrieves a value associated with the specified key from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.

Source:
  - CacheClient.js, line 139

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- value associated with the specified key, or null if it does not exist.

Type
  Promise.<*>

#### (async) getAll(keys) → {Promise.<Array.<CacheEntry>>}

Retrieves entries associated with the specified keys from the cache.

##### Parameters:

Name | Type | Description
--- | --- | ---
`keys` | Array.<*> | keys.

Source:
  - CacheClient.js, line 155

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the retrieved entries (key-value pairs). Entries with the keys which do not exist in the cache are not included into the array.

Type
  Promise.<Array.<CacheEntry>>

#### (async) getAndPut(key, value) → {Promise.<*>}

Associates the specified value with the specified key in the cache and returns the previous associated value, if any.

Overwrites the previous value if the key exists in the cache, otherwise creates new entry (key-value pair).

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 267

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the previous value associated with the specified key, or null if it did not exist.

Type
  Promise.<*>

#### (async) getAndPutIfAbsent(key, value) → {Promise.<*>}

Creates new entry (key-value pair) if the specified key does not exist in the cache. Otherwise returns the current value associated with the existing key.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 336

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the current value associated with the key if it already exists in the cache, null if the new entry is created.

Type
  Promise.<*>

#### (async) getAndRemove(key) → {Promise.<*>}

Removes the cache entry with the specified key and returns the last associated value, if any.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key of the entry to be removed.

Source:
  - CacheClient.js, line 301

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the last value associated with the specified key, or null if it did not exist.

Type
  Promise.<*>

#### (async) getAndReplace(key, value) → {Promise.<*>}

Associates the specified value with the specified key in the cache and returns the previous associated value, if the key exists in the cache. Otherwise does nothing and returns null.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 285

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the previous value associated with the specified key, or null if it did not exist.

Type
  Promise.<*>

#### (async) getSize(…peekModesopt) → {Promise.<number>}

Returns the number of the entries in the cache.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`peekModes` | CacheClient.PEEK_MODE | <optional> <repeatable> | peek modes.

Source:
  - CacheClient.js, line 502

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the number of the entries in the cache.

Type
  Promise.<number>

#### (async) put(key, value)

Associates the specified value with the specified key in the cache.

Overwrites the previous value if the key exists in the cache, otherwise creates new entry (key-value pair).

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 190

##### Throws:

if error.

Type
  IgniteClientError

#### (async) putAll(entries)

Associates the specified values with the specified keys in the cache.

Overwrites the previous value if a key exists in the cache, otherwise creates new entry (key-value pair).

##### Parameters:

Name | Type | Description
--- | --- | ---
`entries` | Array.<CacheEntry> | entries (key-value pairs) to be put into the cache.

Source:
  - CacheClient.js, line 206

##### Throws:

if error.

Type
  IgniteClientError

#### (async) putIfAbsent(key, value) → {Promise.<boolean>}

Creates new entry (key-value pair) if the specified key does not exist in the cache. Otherwise does nothing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 318

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the operation has been done, false otherwise.

Type
  Promise.<boolean>

#### (async) query(query) → {Promise.<Cursor>}

Starts an SQL or Scan query operation.

##### Parameters:

Name | Type | Description
--- | --- | ---
`query` | SqlQuery | SqlFieldsQuery | ScanQuery | query to be executed.

Source:
  - CacheClient.js, line 535

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- cursor to obtain the results of the query operation:
  - SqlFieldsCursor in case of SqlFieldsQuery query
  - Cursor in case of other types of query

Type
  Promise.<Cursor>

#### (async) removeAll()

Removes all entries from the cache, notifying listeners and cache writers.

Source:
  - CacheClient.js, line 483

##### Throws:

if error.

Type
  IgniteClientError

#### (async) removeIfEquals(key, value) → {Promise.<boolean>}

Removes entry with the specified key from the cache, if the current value equals to the provided one. Notifies listeners and cache writers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key to be removed.
`value` | * | value to be compared with the current value associated with the specified key.

Source:
  - CacheClient.js, line 459

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the operation has been done, false otherwise.

Type
  Promise.<boolean>

#### (async) removeKey(key) → {Promise.<boolean>}

Removes entry with the specified key from the cache, notifying listeners and cache writers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key to be removed.

Source:
  - CacheClient.js, line 442

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the operation has been done, false otherwise.

Type
  Promise.<boolean>

#### (async) removeKeys(keys)

Removes entries with the specified keys from the cache, notifying listeners and cache writers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`keys` | Array.<*> | keys to be removed.

Source:
  - CacheClient.js, line 472

##### Throws:

if error.

Type
  IgniteClientError

#### (async) replace(key, value) → {Promise.<boolean>}

Associates the specified value with the specified key, if the key exists in the cache. Otherwise does nothing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be associated with the specified key.

Source:
  - CacheClient.js, line 353

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the operation has been done, false otherwise.

Type
  Promise.<boolean>

#### (async) replaceIfEquals(key, value, newValue) → {Promise.<boolean>}

Associates the new value with the specified key, if the key exists in the cache and the current value equals to the provided one. Otherwise does nothing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`key` | * | key.
`value` | * | value to be compared with the current value associated with the specified key.
`newValue` | * | new value to be associated with the specified key.

Source:
  - CacheClient.js, line 372

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- true if the operation has been done, false otherwise.

Type
  Promise.<boolean>

#### setKeyType(type) → {CacheClient}

Specifies a type of the cache key.

The cache client assumes that keys in all further operations with the cache will have the specified type. Eg. the cache client will convert keys provided as input parameters of the methods to the specified object type before sending them to a server.

After the cache client creation a type of the cache key is not specified (null).

If the type is not specified then during operations the cache client will do automatic mapping between some of the JavaScript types and object types - according to the mapping table defined in the description of the ObjectType class.

##### Parameters:

Name | Type | Description
--- | --- | ---
`type` | ObjectType.PRIMITIVE_TYPE | CompositeType | type of the keys in the cache: either a type code of primitive (simple) type or an instance of class representing non-primitive (composite) type or null (means the type is not specified).

Source:
  - CacheClient.js, line 91

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the same instance of the cache client.

Type
  CacheClient

#### setValueType(type) → {CacheClient}

Specifies a type of the cache value.

The cache client assumes that values in all further operations with the cache will have the specified type. Eg. the cache client will convert values provided as input parameters of the methods to the specified object type before sending them to a server.

After the cache client creation a type of the cache value is not specified (null).

If the type is not specified then during operations the cache client will do automatic mapping between some of the JavaScript types and object types - according to the mapping table defined in the description of the ObjectType class.

##### Parameters:

Name | Type | Description
--- | --- | ---
`type` | ObjectType.PRIMITIVE_TYPE | CompositeType | type of the values in the cache: either a type code of primitive (simple) type or an instance of class representing non-primitive (composite) type or null (means the type is not specified).

Source:
  - CacheClient.js, line 120

##### Throws:

if error.

Type
  IgniteClientError

##### Returns:

- the same instance of the cache client.

Type
  CacheClient