ignite-go-client

Форк
2
месяц назад
Ivan Dashchinskiy
ISE-3186 Fix readme typos
1f0520
2 месяца назад
месяц назад
README.md

ignite-go client

Go thin client for Apache Ignite

Requirements

  • Go 1.19 or higher.

Installation

go get gitverse.ru/sbertech/ignite-go-client

Usage

Basic usage of the apache ignite go driver starts with creating Client using function Start

ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
defer cancel()
client, err := ignite.Start(ctx, ignite.WithAddresses("127.0.0.1:10800", "127.0.0.1:10801")
if err != nil {
return err
}
defer func() {
_ = client.close(context.Background())
}()

This will create a new ignite client to the ignite cluster on localhost. It is possible to pass multiple ClientConfigurationOption parameters to method Start that specify various client options.

Cache creation

Cache can be created or obtained with help of these methods:

  • Client.GetOrCreateCache gets/creates cache by name.
  • Client.CreateCache creates cache by name.
  • Client.GetOrCreateCacheWithConfiguration gets/creates cache by CacheConfiguration.
  • Client.CreateCacheWithConfiguration creates cache by CacheConfiguration. A list of already created caches can be obtained using Client.CacheNames. A cache can be destroyed with Client.DestroyCache.

Cache operations

Here is a basic usage scenario of Cache:

ctx := context.Background()
cache, err := client.GetOrCreateCacheWithConfiguration(ctx, ignite.CreateCacheConfiguration("test",
ignite.WithCacheAtomicityMode(ignite.AtomicAtomicityMode),
ignite.WithCacheMode(ignite.ReplicatedCacheMode),
ignite.WithReadFromBackup(true)
))
if err != nil {
fmt.Printf("Failed to create cache %s \n", err)
return
}
err = cache.Put(ctx, "test", "test")
if err != nil {
fmt.Printf("Failed to put value %s \n", err)
return
}
contains`` err := cache.ContainsKey(ctx, "test")
if err != nil {
fmt.Printf("Failed to invoke contains key operation %s \n", err)
return
}
fmt.Printf("Contains key %s? %t\n", "test", contains)
>>> Contains key test? true

You can see other operations in Cache documentation. Currently only limited types are supported: numerical types, string, uuid, bytes slices. Other types and BinaryObject will be added in later releases.

TTL (ExpiryPolicy) support

You can set ExpiryPolicy to entries by creating special decorator by Cache.WithExpiryPolicy.

cache, err := client.GetOrCreateCache(ctx, "cache_name")
if err != nil {
fmt.Printf("Failed to create cache %s \n"`` err)
return
}
cache = cache.WithExpiryPolicy(1*time.Second, DurationZero, DurationZero)
err = cache.Put(ctx, "test", "test")
if err != nil {
fmt.Printf("Failed to put value %s \n", err)
return
}
<-time.After(1200 * time.Millisecond)
contains, err := cache.ContainsKey(ctx, "test")
if err != nil {
fmt.Printf("Failed to invoke contains key operation %s \n", err)
return
}
fmt.Printf("Contains key %s? %t\n", "test", contains)
>>> Contains key test? false

Описание

Тонкий клиент на языке Golang для Apache Ignite и Platform V DataGrid

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.