blob: 75795223fb39bb86f117cceaffe9734a6899e1b3 [file] [log] [blame]
<!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/native-persistence.css" />
<link rel="stylesheet" href="../css/key-value-api.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" />
</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="hdr__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 hdr__logo--white" src="/img/logo-white.svg" alt="" /><img class="hdr__logoimg hdr__logo--black" 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 class="hdrmenu--expanded" href="/" data-panel="getStarted">Get started</a></li>
<li><a class="hdrmenu__current hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li><a class="hdrmenu--expanded" href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html" data-panel="">Powered by</a></li>
<li><a href="///ignite.apache.org/docs/latest/" data-panel="">Docs</a></li>
</ul>
</nav>
<div class="dropmenu">
<div class="dropmenu__panel" data-menupanel="getStarted">
<div class="container dropmenu1__grid">
<div class="dropmenu__box dropmenu--left">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/resources.html"><img src="/img/menu/icon-resources.svg" alt="" /><span>Resources</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/faq.html"><img src="/img/menu/icon-question.svg" alt="" /><span>FAQ</span></a>
</li>
</ul>
</div>
<div class="dropmenu1__center">
<div class="dropmenu__box">
<p class="capstext">USE CASES</p>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-cache.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Cache</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-data-grid.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Data Grid</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/in-memory-database.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Database</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/key-value-store.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Key-Value Store</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/use-cases/high-performance-computing.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>High-Performance Computing</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/digital-integration-hub.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Digital Integration Hub</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/spark-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Spark Acceleration</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/use-cases/hadoop-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Hadoop Acceleration</span></a>
</li>
</ul>
</div>
</div>
<div class="dropmenu1__right">
<a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
</div>
</div>
<!-- /.dropmenu1__grid-->
</div>
<!-- /.dropmenu__panel-->
<div class="dropmenu__panel" data-menupanel="features">
<div class="container dropmenu2__grid">
<div class="dropmenu2__col dropmenu__box">
<div class="capstext">Distributed <br />Multi-Tiered Storage</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/arch/multi-tier-storage.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Multi-Tier Storage</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/arch/native-persistence.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Native Persistence</span></a>
</li>
</ul>
</div>
<div class="dropmenu2__col dropmenu__box">
<div class="capstext">Essentail Developer <br />APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/sql.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Distributed SQL</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/distributed-key-value-store.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Key-Value APIs</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/acid-transactions.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>ACID Transactions</span></a>
</li>
</ul>
</div>
<div class="dropmenu2__col dropmenu__box">
<div class="capstext">High-Performance <br />Computing APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/compute-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Compute APIs</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/servicegrid.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Services</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/features/machinelearning.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Machine Learning</span></a>
</li>
</ul>
</div>
<div class="dropmenu2__col dropmenu__box">
<div class="capstext">Real Streaming APIs</div>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/features/streaming.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Streaming</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/messaging"><img src="/img/menu/icon-cube.svg" alt="" /><span>Messaging</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries"><img src="/img/menu/icon-cube.svg" alt="" /><span>Continuous Queries</span></a>
</li>
</ul>
</div>
<div class="dropmenu1__right dropmenu2__col">
<a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
</div>
</div>
<!-- /.dropmenu2__grid-->
<div class="panelmorelinkwrap"><a class="panellink" href="/features/">View all</a></div>
</div>
<!-- /.dropmenu__panel-2-->
<div class="dropmenu__panel" data-menupanel="community">
<div class="container dropmenu1__grid dropmenu3__grid">
<div class="dropmenu__box dropmenu--left dropmenu3--left">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/"><img src="/img/menu/icon-clip.svg" alt="" /><span>Apache Ignite Story</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/community.html"><img src="/img/menu/icon-comment.svg" alt="" /><span>Meet The Community</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/community.html"><img src="/img/menu/icon-puzzle.svg" alt="" /><span>Start Contributing</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/faq.html"><img src="/img/menu/icon-question.svg" alt="" /><span>Ask A Question</span></a>
</li>
</ul>
</div>
<div class="dropmenu1__center">
<div class="dropmenu__box">
<p class="capstext">Events</p>
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/events.html#summit"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Apache Ignite Summit</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/events.html#meetups"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Meetups</span></a>
</li>
</ul>
</div>
<div class="dropmenu__box">
<ul class="dropmenu__menu">
<li>
<a class="dropmenu__iconitem" href="/events.html#upcoming"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Upcoming Events</span></a>
</li>
<li>
<a class="dropmenu__iconitem" href="/events.html#past"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Past Events</span></a>
</li>
</ul>
</div>
</div>
<div class="dropmenu1__right">
<a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
</div>
</div>
<!-- /.dropmenu1__grid-->
</div>
<!-- /.dropmenu__panel-->
</div>
<!-- /.dropmeu-->
</div>
</header>
<div class="dropmenu__back"></div>
<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&nbsp;<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&nbsp;write-behind all the changes to&nbsp;an&nbsp;external database for every key-value request issued by&nbsp;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&nbsp;external database if&nbsp;a&nbsp;record is&nbsp;missing in&nbsp;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&nbsp;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&nbsp;is&nbsp;applied for applications that require a&nbsp;consistent response time ranging in&nbsp;microseconds. Ignite automatically invalidates and updates the near cache.</p>
<p>
Whenever the primary copy of&nbsp;a&nbsp;record gets updated on&nbsp;a&nbsp;server node, Ignite propagates the change to&nbsp;all the nodes that store the record&rsquo;s backup copy, as&nbsp;well as&nbsp;to&nbsp;the applications
that keep the record&rsquo;s copy in&nbsp;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&nbsp;updated consistently and reliably.</p></div>
<div class="keyvalue__title">How it works</div>
<div class="keyvaluetext pt-2 pb-5">
<p>
An&nbsp;Ignite transaction can update multiple records from different tables stored on&nbsp;different cluster nodes. Ignite can even span a&nbsp;transaction to&nbsp;an&nbsp;underlying relational database. Ignite implements
<a href="/features/acid-transactions.html">two-phase-commit protocol to&nbsp;ensure data consistency at&nbsp;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">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>