{"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\/pt\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","title":{"rendered":"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A Microsoft abriu o c\u00f3digo-fonte do sistema NoSQL Garnet, projetado para criar armazenamentos em cache e compat\u00edvel com as bibliotecas de clientes existentes para o armazenamento Redis. Garnet suporta a cria\u00e7\u00e3o de clusters escal\u00e1veis para o cache de dados, onde \u00e9 poss\u00edvel usar replica\u00e7\u00e3o, migra\u00e7\u00e3o de chaves e segmenta\u00e7\u00e3o de dados entre os n\u00f3s do cluster. O projeto \u00e9 escrito na linguagem C# com um n\u00facleo de armazenamento em C++, est\u00e1 dispon\u00edvel sob licen\u00e7a MIT e pode operar em todas as plataformas suportadas pelo .NET (as plataformas prim\u00e1rias anunciadas s\u00e3o Linux e Windows).    <\/p>\n<p>Para o armazenamento de dados, \u00e9 utilizado o motor Tsavorite (um fork do armazenamento Microsoft FASTER), que suporta processamento de solicita\u00e7\u00f5es em m\u00faltiplas threads, transa\u00e7\u00f5es, grava\u00e7\u00e3o de altera\u00e7\u00f5es em modo n\u00e3o bloqueante (checkpointing), recupera\u00e7\u00e3o de falhas, manuten\u00e7\u00e3o de c\u00f3pias redundantes e registro de opera\u00e7\u00f5es. O manipulador de rede em Garnet \u00e9 constru\u00eddo usando uma arquitetura de mem\u00f3ria compartilhada proposta pelo projeto de pesquisa ShadowFax. O processamento TLS e a intera\u00e7\u00e3o com o armazenamento s\u00e3o realizados em uma \u00fanica thread, o que permite evitar sobrecargas de troca de threads e utilizar mais eficientemente o cache da CPU durante a transmiss\u00e3o de dados pela rede.      <\/p>\n<p>A arquitetura Garnet separa a l\u00f3gica de an\u00e1lise e processamento de solicita\u00e7\u00f5es das opera\u00e7\u00f5es com o armazenamento. Os dados s\u00e3o armazenados usando dois reposit\u00f3rios no formato chave-valor, implementados com a biblioteca Tsavorite. O primeiro reposit\u00f3rio 'principal' \u00e9 otimizado para a execu\u00e7\u00e3o r\u00e1pida de opera\u00e7\u00f5es com strings, enquanto o segundo reposit\u00f3rio 'objetivo' \u00e9 otimizado para armazenar objetos complexos e tipos de dados avan\u00e7ados, como hashes e listas. Os tipos de dados no segundo reposit\u00f3rio s\u00e3o implementados com bibliotecas .NET. Os dados s\u00e3o armazenados na heap (C# heap), o que permite atualiza\u00e7\u00f5es eficientes, e em formato serializado no disco.      <center><img decoding=\"async\" alt=\"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis \" src=\"\/wp-content\/uploads\/2024\/03\/0dfc0274c7f0f9a0bc6d38779e70a13b.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>              <\/p>\n<p>Recursos do Garnet:  <\/p>\n<ul>\n<li class=\"l\"> \u00c9 poss\u00edvel implantar armazenamentos em m\u00faltiplos n\u00edveis, abrangendo mem\u00f3ria RAM, unidades SSD e armazenamentos em nuvem, onde dados menos acessados s\u00e3o deslocados para armazenamentos mais lentos para criar caches maiores do que a mem\u00f3ria RAM.\n<li class=\"l\"> Suporte expand\u00edvel para dispositivos, permitindo a cria\u00e7\u00e3o de camadas otimizadas para diferentes dispositivos, como camadas para SSDs, discos r\u00edgidos e armazenamento em nuvem Azure Storage.\n<li class=\"l\"> Um mecanismo eficiente de reutiliza\u00e7\u00e3o do espa\u00e7o livre na mem\u00f3ria RAM, prevenindo a fragmenta\u00e7\u00e3o.\n<li class=\"l\"> Limites configur\u00e1veis para o tamanho da mem\u00f3ria utilizada para \u00edndices, logs e armazenamento de objetos.\n<li class=\"l\"> Para acesso ao armazenamento, utiliza-se o protocolo RESP, permitindo que o Garnet funcione com clientes Redis n\u00e3o modificados.\n<li class=\"l\"> Suporte para armazenar tanto valores de string quanto estruturas de dados complexas, como listas, hashes, conjuntos, listas ordenadas e dados de geolocaliza\u00e7\u00e3o. Capacidade de definir o tempo de vida da chave.\n<li class=\"l\"> Disponibilidade de API para execu\u00e7\u00e3o de consultas anal\u00edticas (HLL\/Hyperloglog, Bitmap), transa\u00e7\u00f5es (MULTI\/EXEC) e uso da paradigma de publica\u00e7\u00e3o\/assinatura.\n<li class=\"l\"> Exist\u00eancia de ferramentas para gerenciamento flex\u00edvel de acesso via ACL.\n<li class=\"l\"> Possibilidade de definir a configura\u00e7\u00e3o no formato JSON ou redis.conf.\n<li class=\"l\"> Suporte para conectar manipuladores de rede adicionais. Possibilidade de criptografar o tr\u00e1fego usando TLS (baseado em SslStream).\n<li class=\"l\"> Capacidade de criar extens\u00f5es em C# que implementam opera\u00e7\u00f5es adicionais em strings e objetos.\n<li class=\"l\"> Suporte para procedimentos armazenados transacionais, abrangendo v\u00e1rias chaves.\n<li class=\"l\"> Capacidade de restaurar o estado a partir de uma posi\u00e7\u00e3o previamente salva (checkpoint-recovery). Disponibilidade de um modo somente de adi\u00e7\u00e3o (AOF, arquivo somente para adi\u00e7\u00e3o), onde todos os dados antigos permanecem acess\u00edveis e n\u00e3o s\u00e3o substitu\u00eddos.\n<li class=\"l\"> Suporte para criar um cluster de armazenamento com replica\u00e7\u00e3o, segmenta\u00e7\u00e3o (Sharding), migra\u00e7\u00e3o din\u00e2mica de chaves entre n\u00f3s e recupera\u00e7\u00e3o de n\u00f3s com falha.\n<li class=\"l\"> Alta performance e baixas lat\u00eancias na execu\u00e7\u00e3o de consultas. Processamento eficiente de pequenos lotes de consultas com um grande n\u00famero de sess\u00f5es de cliente, permitindo alcan\u00e7ar uma capacidade (n\u00famero de consultas processadas por segundo) significativamente superior \u00e0 de solu\u00e7\u00f5es concorrentes. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/vps\/abuzoustojchivye-vps\/\"   title=\"m\u00e1quinas virtuais\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4244\">m\u00e1quinas virtuais<\/a> No ambiente Azure, na maioria dos casos, a lat\u00eancia de acesso do cliente n\u00e3o ultrapassa 300 microssegundos. Em testes realizados, o Garnet supera significativamente o Redis, Dragonfly e KeyDB em termos de desempenho e responsividade. Em alguns testes, o Garnet supera sistemas concorrentes por dez vezes.      <center><img decoding=\"async\" alt=\"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis \" src=\"\/wp-content\/uploads\/2024\/03\/eac4512021ec4d8d2841708e66c56801.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>  <center><img decoding=\"async\" alt=\"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis \" src=\"\/wp-content\/uploads\/2024\/03\/c50a64571f4aa25aee8ab621b94cc023.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>        <center><img decoding=\"async\" alt=\"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis \" src=\"\/wp-content\/uploads\/2024\/03\/1c1e18d9c5286d5d1d523accd933f6cf.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"A Microsoft abriu o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis \" src=\"\/wp-content\/uploads\/2024\/03\/16cc172596f09b1fc4c69ca3e5b14aa1.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>            <\/ul>\n<p>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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 libera o c\u00f3digo do reposit\u00f3rio Garnet, compat\u00edvel com Redis | ProHoster","description":"A Microsoft abriu os c\u00f3digos-fonte do sistema NoSQL Garnet, projetado para a cria\u00e7\u00e3o de reposit\u00f3rios de cache e compat\u00edvel com as bibliotecas de cliente existentes para armazenamento Redis.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/114431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=114431"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/114431\/revisions"}],"predecessor-version":[{"id":164119,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/114431\/revisions\/164119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/114432"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=114431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=114431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=114431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}