| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" /> |
| <title>Distributed Key-Value APIs | Apache Ignite</title> |
| <link rel="stylesheet" href="/js/vendor/hystmodal/hystmodal.min.css" /> |
| <link rel="stylesheet" href="/js/vendor/swiper/swiper-bundle.min.css" /> |
| <link rel="stylesheet" href="/css/utils.css" /> |
| <link rel="stylesheet" href="/css/site.css" /> |
| <link rel="stylesheet" href="/css/media.css" media="only screen and (max-width:1199px)" /> |
| <link rel="icon" type="image/png" href="/img/favicon.png" /> |
| <link rel="stylesheet" href="../css/native-persistence.css" /> |
| <link rel="stylesheet" href="../css/key-value-api.css" /> |
| </head> |
| <body> |
| <!-- MOBILE MENU START --> |
| <div class="hystmodal" id="jsMenuModal" aria-hidden="true"> |
| <div class="hystmodal__wrap"> |
| <div class="hystmodal__window mobmenu" role="dialog" aria-modal="true"> |
| <button data-hystclose class="hystmodal__close">Close</button> |
| <div class="mobmenu__wrap"> |
| <a href="/" class="mobmenu__logo"><img src="/img/logo.svg" alt="Логотип" /></a> |
| <div class="mobmenu__menu"> |
| <div class="mobmenu__h1 berlin">Navigation</div> |
| <ul> |
| <li> |
| <a href="/">Get started</a> |
| </li> |
| <li> |
| <a href="/features/">Features</a> |
| </li> |
| <li> |
| <a href="/community.html">Community</a> |
| </li> |
| <li> |
| <a href="/use-cases/provenusecases.html">Powered by</a> |
| </li> |
| <li> |
| <a href="https://ignite.apache.org/docs/latest/">Docs</a> |
| </li> |
| </ul> |
| </div> |
| <!-- //mobmenu__menu --> |
| </div> |
| <!-- //mobmenu__wrap --> |
| </div> |
| <!-- //mobmenu --> |
| </div> |
| </div> |
| <!-- MOBILE MENU END --> |
| <header class="hdr hdr__blue"> |
| <div class="cmtyhero__wrap flexi"> |
| <button class="hdr__burger" data-menumodal="#jsMenuModal"><img src="/img/menu.svg" alt="" /></button><a class="hdr__logo" href="/"><img class="hdr__logoimg" src="/img/logo-white.svg" alt="" /></a |
| ><a class="button hdr__button" href="/download.html">Download Ignite 2.11 </a> |
| <nav class="hdrmenu"> |
| <ul class="flexi"> |
| <li><a href="/">Get started</a></li> |
| <li><a class="hdrmenu__current" href="/features">Features</a></li> |
| <li><a href="/community.html">Community</a></li> |
| <li><a href="/use-cases/provenusecases.html">Powered by</a></li> |
| <li><a href="///ignite.apache.org/docs/latest/">Docs</a></li> |
| </ul> |
| </nav> |
| </div> |
| </header> |
| <header class="hdrfloat"> |
| <div class="cmtyhero__wrap flexi"> |
| <button class="hdr__burger" data-menumodal="#jsMenuModal"><img src="/img/menu.svg" alt="" /></button><a class="hdr__logo" href="/"><img class="hdr__logoimg" src="/img/logo.svg" alt="" /></a |
| ><a class="button hdr__button" href="/download.html">Download Ignite 2.11 </a> |
| <nav class="hdrmenu"> |
| <ul class="flexi"> |
| <li><a href="/">Get started</a></li> |
| <li><a class="hdrmenu__current" href="/features">Features</a></li> |
| <li><a href="/community.html">Community</a></li> |
| <li><a href="/use-cases/provenusecases.html">Powered by</a></li> |
| <li><a href="/docs.html">Docs</a></li> |
| </ul> |
| </nav> |
| </div> |
| </header> |
| <section class="innerhero innerhero--keyvalue"> |
| <div class="container innerhero__cont"> |
| <div class="innerhero__main"> |
| <div class="innerhero__pre pb-5">Apache Ignite</div> |
| <h1 class="h1 innerhero__h1">Distributed <br />Key-Value APIs</h1> |
| <div class="innerhero__descr pt-2 h5">Query your distributed data in the fastest way possible <br />with key-value APIs</div> |
| <div class="innerhero__action"><a class="button innerhero__button" href="https://ignite.apache.org/docs/latest/index">Start Coding</a></div> |
| </div> |
| <img class="innerhero__pic innerhero__pic--keyvalue" src="/img/features/key-value/hero.svg" alt="Distributed Key-Value APIs" /> |
| </div> |
| </section> |
| <!-- /.innerhero--> |
| <section class="keyvalue1 container flexi"> |
| <div class="keyvalue1__left"> |
| <div class="capstext">Key-Value APIs Overview</div> |
| <div class="keyvaluetext pt-5"> |
| <p> |
| Every record in Ignite is stored as a key-value pair. All the records are distributed evenly across the cluster nodes. Your key-value queries are directed automatically to the nodes that store requested data. This is how Ignite |
| utilizes all the given memory, disk, and CPU resources. |
| </p> |
| <p>Key-value APIs are supported by all existing Ignite client libraries:</p> |
| </div> |
| <div class="keyvalue1__libs pt-5"> |
| <p class="h5 leyvalue__lang">Java <small>(implements JSR-107 specification known as JCache)</small></p> |
| <p class="h5 leyvalue__lang">.NET</p> |
| <p class="h5 leyvalue__lang">Python</p> |
| <p class="h5 leyvalue__lang">Node.JS</p> |
| <p class="h5 leyvalue__lang">Your language</p> |
| </div> |
| </div> |
| <div class="keyvalue1__right"> |
| <div class="keyvalue1__picwrap picwrap"><img class="keyvalue1__pic" src="/img/features/key-value/key-value-api-pic.svg" alt="" /></div> |
| </div> |
| </section> |
| <!-- /.keyvalue1--> |
| <section class="keyvalueplank container"> |
| <div class="keyvalueplank__inner"> |
| Apache Ignite key-value APIs provide additional capabilities such as <strong>automatic synchronization</strong> with external databases, <strong>near caching</strong> and <strong>ACID transactions.</strong> |
| </div> |
| </section> |
| <section class="keyvalue2 container flexi"> |
| <div class="keyvalue2__left"> |
| <div class="keyvalue__title">Automatic Synchronization With External <br />Databases To Keep A Consistent Copy Of Data</div> |
| <div class="keyvaluetext pt-2 pb-5"> |
| <p>Two synchronization strategies are available in Apache Ignite: <br />write-through/behind and read-through.</p> |
| </div> |
| <dl class="keyvalue2__box pb-2"> |
| <dt>Write-through and write-behind capabilities</dt> |
| <dd class="pt-2">Ignite can automatically write-through or write-behind all the changes to an external database for every key-value request issued by your applications.</dd> |
| </dl> |
| <dl class="keyvalue2__box"> |
| <dt>Read-through capabilities</dt> |
| <dd>Read-through means that Ignite can automatically load data from an external database if a record is missing in memory.</dd> |
| </dl> |
| </div> |
| <div class="keyvalue2__right"> |
| <div class="keyvalue2__picwrap picwrap"><img class="keyvalue2__pic" src="/img/features/key-value/key-value-api-2.svg" alt="" /></div> |
| </div> |
| </section> |
| <!-- /.keyvalue2--> |
| <section class="keyvalue3 container flexi"> |
| <div class="keyvalue3__right"> |
| <div class="keyvalue__title">Near Cache To Process Your Requests In Microseconds</div> |
| <div class="keyvaluetext pt-2 pb-5"> |
| <p>A near cache is a local client-side cache that stores the most frequently <br />used data on the application end.</p> |
| </div> |
| <div class="keyvalue__title">How it works</div> |
| <div class="keyvaluetext pt-2 pb-5"> |
| <p>It is applied for applications that require a consistent response time ranging in microseconds. Ignite automatically invalidates and updates the near cache.</p> |
| <p> |
| Whenever the primary copy of a record gets updated on a server node, Ignite propagates the change to all the nodes that store the record’s backup copy, as well as to the applications |
| that keep the record’s copy in their near caches. |
| </p> |
| </div> |
| </div> |
| <div class="keyvalue3__left"> |
| <div class="keyvalue3__picwrap picwrap"><img class="keyvalue3__pic" src="/img/features/key-value/key-value-api-3.svg" alt="" /></div> |
| </div> |
| </section> |
| <!-- /.keyvalue3--> |
| <section class="keyvalue4 container flexi pb-1"> |
| <div class="keyvalue4__left"> |
| <div class="keyvalue__title">ACID Transactions To Update Your Distributed Records Consistently</div> |
| <div class="keyvaluetext pt-2 pb-5"><p>Apache Ignite key-value APIs are fully transactional which means that data can be updated consistently and reliably.</p></div> |
| <div class="keyvalue__title">How it works</div> |
| <div class="keyvaluetext pt-2 pb-5"> |
| <p> |
| An Ignite transaction can update multiple records from different tables stored on different cluster nodes. Ignite can even span a transaction to an underlying relational database. Ignite implements |
| <a href="/features/acid-transactions.html">two-phase-commit protocol to ensure data consistency at scale.</a> |
| </p> |
| </div> |
| </div> |
| <div class="keyvalue4__right"> |
| <div class="keyvalue4__picwrap picwrap"><img class="keyvalue4__pic" src="/img/features/key-value/key-value-api-4.svg" alt="" /></div> |
| </div> |
| </section> |
| <!-- /.keyvalue3--> |
| <section class="native-bottom container"> |
| <div class="native-bottom__grid"> |
| <article class="nativebotblock"> |
| <h3 class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-rocket.svg" alt="" /><span>Ready to Start?</span></h3> |
| <p class="nativebotblock__text">Create your first application using <br />Ignite key-value APIs</p> |
| <a class="nativebotblock__link arrowlink" href="https://ignite.apache.org/docs/latest/key-value-api/basic-cache-operations" target="_blank">Using Key-Value APIs</a> |
| </article> |
| <article class="nativebotblock nativebotblock--learn"> |
| <h3 class="h4 nativebotblock__title"><img class="nativebotblock__icon" src="/img/features/native-docs.svg" alt="" /><span>Want to Learn More?</span></h3> |
| <p class="nativebotblock__text">Check out how Apache Ignite can be configured <br />and used as a standard key-value store</p> |
| <a class="nativebotblock__link arrowlink" href="/use-cases/key-value-store.html" target="_blank">Key-Value Store</a> |
| </article> |
| </div> |
| </section> |
| <a class="scrollTop" href="#" |
| ><svg class="feather feather-chevron-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> |
| <polyline points="18 15 12 9 6 15"></polyline></svg |
| ></a> |
| <script src="/js/vendor/hystmodal/hystmodal.min.js"></script> |
| <script src="/js/vendor/swiper/swiper-bundle.min.js"></script> |
| <script src="/js/vendor/waypoints.min.js"></script> |
| <script src="/js/main.js"></script> |
| </body> |
| </html> |