{"id":114431,"date":"2024-03-19T18:25:44","date_gmt":"2024-03-19T16:25:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis"},"modified":"2024-03-19T18:25:44","modified_gmt":"2024-03-19T16:25:47","slug":"microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","title":{"rendered":"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Microsoft har frigivet kildekoden til NoSQL-systemet Garnet, som er designet til at oprette cache-lagre og er kompatibelt med eksisterende klientsbiblioteker til Redis-lageret. Garnet underst\u00f8tter oprettelse af skalerbare klynger til datacaching, hvor replikation, n\u00f8glemigration og datasegmentering mellem klynge-noder kan anvendes. Projektet er skrevet i C# med en lagernucleus i C++ og er \u00e5bent under MIT-licensen; det kan k\u00f8re p\u00e5 alle platforme, der underst\u00f8ttes i .NET (de prim\u00e6re platforme n\u00e6vnt er Linux og Windows).    <\/p>\n<p>Til datalagring anvendes Tsavorite-motoren (et fork af Microsoft FASTER-lageret), som underst\u00f8tter multitr\u00e5det behandling af foresp\u00f8rgsler, transaktioner, \u00e6ndringscheckpointing i et ikke-blokerende milj\u00f8, genopretning efter fejl, opbevaring af redundante kopier og logf\u00f8relse af operationer. Netv\u00e6rkshandleren i Garnet er bygget med en delt hukommelsesarkitektur foresl\u00e5et af forskningsprojektet ShadowFax. TLS-behandling og interaktion med lageret udf\u00f8res i \u00e9n tr\u00e5d, hvilket muligg\u00f8r at undg\u00e5 omkostningerne ved tr\u00e5dskift og mere effektivt bruge CPU-cache under dataoverf\u00f8rsel over netv\u00e6rket.      <\/p>\n<p>Garnet-arkitekturen adskiller logikken for behandling og h\u00e5ndtering af anmodninger fra operationer med lagring. Data gemmes ved hj\u00e6lp af to n\u00f8gle-v\u00e6rdi-lager, der er implementeret p\u00e5 basis af Tsavorite-biblioteket. Det f\u00f8rste \"grundl\u00e6ggende\" lager er optimeret til hurtig udf\u00f8relse af operationer med strenge, mens det andet \"objekt\" lager er optimeret til at h\u00e5ndtere komplekse objekter og udvidede datatyper som hashes og lister. Datatyperne i det andet lager er implementeret med hj\u00e6lp fra .NET-biblioteker. Data opbevares i heap (C# heap), hvilket muligg\u00f8r effektiv opdatering, samt i serialiseret form p\u00e5 disken.      <center><img decoding=\"async\" alt=\"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis \" src=\"\/wp-content\/uploads\/2024\/03\/0dfc0274c7f0f9a0bc6d38779e70a13b.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>              <\/p>\n<p>Funktioner i Garnet:  <\/p>\n<ul>\n<li class=\"l\"> Muligheden for at implementere flerlagede lagre, der d\u00e6kker RAM, SSD-drev og cloud-lagre, hvor mindre efterspurgte data bliver skubbet til langsommere lagre for at skabe caches, der er st\u00f8rre end RAM.\n<li class=\"l\"> Skalerbar enhedssupport, der muligg\u00f8r oprettelse af lag, der er optimeret til forskellige enheder, f.eks. lag til SSD'er, harddiske og Azure Storage.\n<li class=\"l\"> Effektiv mekanisme til genbrug af frigivet hukommelse, der forhindrer fragmentering.\n<li class=\"l\"> Tilpassede gr\u00e6nser for st\u00f8rrelsen p\u00e5 hukommelsen, der bruges til indeks, log og objektlagring.\n<li class=\"l\"> Redis anvender RESP-protokollen til at f\u00e5 adgang til lageret, hvilket g\u00f8r det muligt at bruge Garnet med ikke-modificerede Redis-klienter.\n<li class=\"l\"> St\u00f8tte til b\u00e5de strenge v\u00e6rdier og komplekse dataposter som lister, hashes, s\u00e6t, sortere lister og geolokationsdata. Mulighed for at definere en n\u00f8glev\u00e6rdi livscyklus.\n<li class=\"l\"> API til udf\u00f8relse af analytiske foresp\u00f8rgsler (HLL\/Hyperloglog, Bitmap), transaktioner (MULTI\/EXEC) og brug af publicerings-\/abonnementsparadigmet.\n<li class=\"l\"> V\u00e6rkt\u00f8jer til fleksibel adgangsstyring via ACL.\n<li class=\"l\"> Mulighed for at definere konfiguration i JSON-format eller redis.conf.\n<li class=\"l\"> St\u00f8tte til tilslutning af yderligere netv\u00e6rksh\u00e5ndterere. Mulighed for kryptering af trafik ved hj\u00e6lp af TLS (baseret p\u00e5 SslStream).\n<li class=\"l\"> Mulighed for at oprette udvidelser p\u00e5 C#, der implementerer ekstra operationer med strenge og objekter.\n<li class=\"l\"> St\u00f8tte til transaktionelle lagrede procedurer, der d\u00e6kker flere n\u00f8gler.\n<li class=\"l\"> Mulighed for at gendanne tilstanden fra en tidligere gemt position (checkpoint-recovery). Tilstedev\u00e6relse af en append-only mode (AOF), hvor alle gamle data forbliver tilg\u00e6ngelige og ikke overskrives.\n<li class=\"l\"> St\u00f8tte til oprettelse af et clustersystem med lagring, replikering, segmentering (Sharding), dynamisk migration af n\u00f8gler mellem noder og genopretning af fejlede noder.\n<li class=\"l\"> H\u00f8j ydeevne og lave latenser ved udf\u00f8relse af foresp\u00f8rgsler. Effektiv behandling af sm\u00e5 batch-foresp\u00f8rgsler ved et stort antal klientsessioner, hvilket muligg\u00f8r en genneml\u00f8b (antal behandlede foresp\u00f8rgsler pr. sekund), der er en ordre h\u00f8jere end konkurrerende l\u00f8sninger. Ved opstart i <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/da\/vps\/abuzoustojchivye-vps\/\"   title=\"virtuelle maskiner\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4244\">virtuelle maskiner<\/a> I Azure-skyen overstiger klientens ventetider i de fleste tilf\u00e6lde ikke 300 mikrosekunder. I gennemf\u00f8rte tests overg\u00e5r Garnet markant Redis, Dragonfly og KeyDB med hensyn til ydeevne og reaktivitet. I nogle tests overg\u00e5r Garnet konkurrenternes systemer ti gange.      <center><img decoding=\"async\" alt=\"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis \" src=\"\/wp-content\/uploads\/2024\/03\/eac4512021ec4d8d2841708e66c56801.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>  <center><img decoding=\"async\" alt=\"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis \" src=\"\/wp-content\/uploads\/2024\/03\/c50a64571f4aa25aee8ab621b94cc023.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>        <center><img decoding=\"async\" alt=\"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis \" src=\"\/wp-content\/uploads\/2024\/03\/1c1e18d9c5286d5d1d523accd933f6cf.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis \" src=\"\/wp-content\/uploads\/2024\/03\/16cc172596f09b1fc4c69ca3e5b14aa1.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>            <\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60808\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis. Garnet \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C# \u0441 \u044f\u0434\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0430 C++, \u043e\u0442\u043a\u0440\u044b\u0442 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":114432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-114431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Garnet, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Redis | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-03-19T16:25:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-03-19T16:25:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Microsoft har \u00e5bnet koden til Garnet-lageret, der er kompatibelt med Redis | ProHoster","description":"Microsoft har \u00e5bnet kildekoden til NoSQL-systemet Garnet, der er designet til at oprette cache-lagrede lagre og er kompatible med eksisterende klientbiblioteker til Redis-lager.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Garnet, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Redis | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-03-19T16:25:47+00:00","article:modified_time":"2024-03-19T16:25:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/114431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=114431"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/114431\/revisions"}],"predecessor-version":[{"id":164119,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/114431\/revisions\/164119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/114432"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=114431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=114431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=114431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}