

{"id":9963,"date":"2025-04-28T10:07:56","date_gmt":"2025-04-28T02:07:56","guid":{"rendered":"https:\/\/www.dkmeco.com\/en\/?p=9963"},"modified":"2025-04-28T10:21:12","modified_gmt":"2025-04-28T02:21:12","slug":"using-redis-for-real-time-analytics-the-choice-of-many-leading-companies","status":"publish","type":"post","link":"https:\/\/www.dkmeco.com\/en\/using-redis-for-real-time-analytics-the-choice-of-many-leading-companies\/","title":{"rendered":"Using Redis for real-time analytics \u2014 the choice of many leading companies!"},"content":{"rendered":"<p class=\"\" data-start=\"21\" data-end=\"383\">Smart and delightful customer experiences put great demands on the performance of interactive applications. This requires high-performance databases that can handle a wide variety of application scenarios with minimal complexity and cost, without compromising performance. Redis is exactly such a database, widely used by enterprises for real-time analytics.<\/p>\n<h2 class=\"\" data-start=\"385\" data-end=\"421\">High-Performance Business Drivers<\/h2>\n<h3 class=\"\" data-start=\"423\" data-end=\"446\">Real-Time Analytics<\/h3>\n<p class=\"\" data-start=\"448\" data-end=\"914\">In everyday life, when users interact with applications, the new generation of apps often tell users things like:<br data-start=\"561\" data-end=\"564\" \/><em data-start=\"564\" data-end=\"622\">&#8220;We noticed you like X, we think you might also like Y.&#8221;<\/em><br data-start=\"622\" data-end=\"625\" \/>Or when users make a selection or a purchase, they receive suggestions like:<br data-start=\"701\" data-end=\"704\" \/><em data-start=\"704\" data-end=\"803\">&#8220;Many of our users who chose A were happiest when they also chose C. We thought you should know.&#8221;<\/em><br data-start=\"803\" data-end=\"806\" \/>Or even:<br data-start=\"814\" data-end=\"817\" \/><em data-start=\"817\" data-end=\"914\">&#8220;You just booked Q \u2014 here are some reviews for R, which you might want to check out afterward.&#8221;<\/em><\/p>\n<p data-start=\"448\" data-end=\"914\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.24.32.png\" width=\"630\" height=\"316\" \/><\/p>\n<p class=\"\" data-start=\"916\" data-end=\"1185\">These smart applications offer timely and contextually relevant suggestions while users are still engaged, providing opportunities to enhance user experience and satisfaction. Offers made at this moment are much more effective than cold emails or calls made days later.<\/p>\n<p class=\"\" data-start=\"1187\" data-end=\"1571\">This level of smart interaction also greatly enhances user experience \u2014 for instance, a user who just booked a ticket to &#8220;Second City Chicago&#8221; might appreciate being shown discounted dining options nearby before the show. From a business perspective, delivering a superior experience can retain loyal customers who might otherwise be lured away by competitors offering better service.<\/p>\n<p class=\"\" data-start=\"1573\" data-end=\"1867\">The &#8220;smartness&#8221; of an application can also include detecting unusual behaviors that signal various types of fraud, from gaming fraud to identity fraud or promotional abuse. Successful detection must happen <strong data-start=\"1779\" data-end=\"1789\">before<\/strong> users finish fraudulent actions, which demands real-time behavioral analysis.<\/p>\n<p data-start=\"1573\" data-end=\"1867\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.24.43.png\" width=\"589\" height=\"495\" \/><\/p>\n<p class=\"\" data-start=\"1869\" data-end=\"2169\">Thanks to the increasing availability of inexpensive computing power, data processing tools, and learning frameworks, integrating &#8220;intelligence&#8221; into applications is more achievable than ever. However, <strong data-start=\"2071\" data-end=\"2169\">adding intelligence without sacrificing application performance or responsiveness is critical.<\/strong><\/p>\n<p class=\"\" data-start=\"2171\" data-end=\"2433\">Especially for customer-facing applications, users expect responses within <strong data-start=\"2246\" data-end=\"2266\">100 milliseconds<\/strong>. Considering that Internet round-trip times can take up to <strong data-start=\"2326\" data-end=\"2335\">50 ms<\/strong>, the application must complete processing, data access, and response generation within <strong data-start=\"2423\" data-end=\"2432\">50 ms<\/strong>.<\/p>\n<p data-start=\"2171\" data-end=\"2433\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.24.51.png\" width=\"566\" height=\"271\" \/><\/p>\n<p class=\"\" data-start=\"2435\" data-end=\"2721\">To meet this requirement at scale, the database must deliver <strong data-start=\"2496\" data-end=\"2545\">sub-millisecond response times under any load<\/strong>. In addition, real-time analysis must happen <strong data-start=\"2591\" data-end=\"2612\">at the same speed<\/strong> and <strong data-start=\"2617\" data-end=\"2643\">in the same operations<\/strong> as transactional processing \u2014 meaning <strong data-start=\"2682\" data-end=\"2707\">in-database analytics<\/strong> is essential.<\/p>\n<hr class=\"\" data-start=\"2723\" data-end=\"2726\" \/>\n<h3 class=\"\" data-start=\"2728\" data-end=\"2762\">Redis\u2019 Analytical Capabilities<\/h3>\n<p class=\"\" data-start=\"2764\" data-end=\"2966\">Redis is an in-memory database platform renowned for its high performance, extreme versatility of data structures, and modular extensibility for all types of processing, analysis, and storage use cases.<\/p>\n<p class=\"\" data-start=\"2968\" data-end=\"3277\"><strong data-start=\"2968\" data-end=\"2984\">Performance:<\/strong><br data-start=\"2984\" data-end=\"2987\" \/>Redis has been benchmarked to process <strong data-start=\"3025\" data-end=\"3062\">one million operations per second<\/strong> with sub-millisecond latency on ordinary AWS instances. When it comes to end-to-end application throughput and latency, Redis easily outperforms every other NoSQL database on the market with minimal resource usage.<\/p>\n<p style=\"text-align: center;\" data-start=\"2968\" data-end=\"3277\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.25.00.png\" width=\"494\" height=\"185\" \/><\/p>\n<p class=\"\" data-start=\"3279\" data-end=\"3587\"><strong data-start=\"3279\" data-end=\"3299\">Data Structures:<\/strong><br data-start=\"3299\" data-end=\"3302\" \/>The real power behind Redis\u2019 analytics lies in its rich data structures: <strong data-start=\"3375\" data-end=\"3447\">Sets, Sorted Sets, Hashes, Lists, Strings, Bitmaps, and HyperLogLogs<\/strong>. These structures not only allow flexible data storage but also provide built-in operations for performing complex <strong data-start=\"3563\" data-end=\"3586\">in-memory analytics<\/strong>.<\/p>\n<p class=\"\" data-start=\"3589\" data-end=\"3859\">Example: <strong data-start=\"3598\" data-end=\"3613\">Sorted Sets<\/strong><br data-start=\"3613\" data-end=\"3616\" \/>Sorted Sets store members ordered by scores. Retrieving members by score range is trivial, making them ideal for <strong data-start=\"3729\" data-end=\"3749\">time-series data<\/strong>, <strong data-start=\"3751\" data-end=\"3772\">real-time bidding<\/strong>, <strong data-start=\"3774\" data-end=\"3802\">purchase volume rankings<\/strong>, <strong data-start=\"3804\" data-end=\"3828\">most viewed articles<\/strong>, <strong data-start=\"3830\" data-end=\"3848\">highest scores<\/strong>, and more.<\/p>\n<p class=\"\" data-start=\"3861\" data-end=\"4251\">Thanks to their native implementation in Redis, Sorted Sets enable highly efficient operations like sorting, range queries, range counting, and set operations (intersection, union, etc.) \u2014 all performed <strong data-start=\"4064\" data-end=\"4101\">with maximum simplicity and speed<\/strong>.<br data-start=\"4102\" data-end=\"4105\" \/>Using Sorted Sets for analytics, such as time-series analysis, can be <strong data-start=\"4175\" data-end=\"4193\">10\u2013100x faster<\/strong> than using traditional key-value or disk-based databases.<\/p>\n<p style=\"text-align: center;\" data-start=\"3861\" data-end=\"4251\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.25.11.png\" width=\"572\" height=\"318\" \/><\/p>\n<p class=\"\" data-start=\"4253\" data-end=\"4322\">Other Redis data structures offer similar capabilities for analytics:<\/p>\n<ul data-start=\"4323\" data-end=\"4522\">\n<li class=\"\" data-start=\"4323\" data-end=\"4406\">\n<p class=\"\" data-start=\"4325\" data-end=\"4406\"><strong data-start=\"4325\" data-end=\"4337\">Geo Data<\/strong> structures enable geospatial data analysis and distance calculation.<\/p>\n<\/li>\n<li class=\"\" data-start=\"4407\" data-end=\"4522\">\n<p class=\"\" data-start=\"4409\" data-end=\"4522\"><strong data-start=\"4409\" data-end=\"4424\">HyperLogLog<\/strong> offers probabilistic cardinality estimation with minimal memory usage even for millions of items.<\/p>\n<\/li>\n<\/ul>\n<p class=\"\" data-start=\"4524\" data-end=\"4716\">Combined with features like Pub\/Sub, key expiration, list operations (push, pop), and increment\/decrement commands, Redis allows developers to assemble their applications like building blocks.<\/p>\n<p class=\"\" data-start=\"4718\" data-end=\"4852\">Redis also supports <strong data-start=\"4738\" data-end=\"4764\">embedded Lua scripting<\/strong>, extending the complexity and scope of analytics you can perform natively inside Redis.<\/p>\n<p class=\"\" data-start=\"4854\" data-end=\"4918\"><strong data-start=\"4854\" data-end=\"4871\"><a href=\"https:\/\/www.dkmeco.com\/en\/redis-enterprise\/\">Redis<\/a> Modules<\/strong> further expand Redis&#8217; capabilities, including:<\/p>\n<ul data-start=\"4919\" data-end=\"5274\">\n<li class=\"\" data-start=\"4919\" data-end=\"4974\">\n<p class=\"\" data-start=\"4921\" data-end=\"4974\"><strong data-start=\"4921\" data-end=\"4937\">neural-redis<\/strong>: Native feed-forward neural networks<\/p>\n<\/li>\n<li class=\"\" data-start=\"4975\" data-end=\"5033\">\n<p class=\"\" data-start=\"4977\" data-end=\"5033\"><strong data-start=\"4977\" data-end=\"4989\">Redis-ML<\/strong>: Machine learning models as a Redis service<\/p>\n<\/li>\n<li class=\"\" data-start=\"5034\" data-end=\"5091\">\n<p class=\"\" data-start=\"5036\" data-end=\"5091\"><strong data-start=\"5036\" data-end=\"5050\">RediSearch<\/strong>: Full-text search and secondary indexing<\/p>\n<\/li>\n<li class=\"\" data-start=\"5092\" data-end=\"5128\">\n<p class=\"\" data-start=\"5094\" data-end=\"5128\"><strong data-start=\"5094\" data-end=\"5104\">ReJSON<\/strong>: JSON data manipulation<\/p>\n<\/li>\n<li class=\"\" data-start=\"5129\" data-end=\"5174\">\n<p class=\"\" data-start=\"5131\" data-end=\"5174\"><strong data-start=\"5131\" data-end=\"5145\">RedisGraph<\/strong>: Graph database capabilities<\/p>\n<\/li>\n<li class=\"\" data-start=\"5175\" data-end=\"5274\">\n<p class=\"\" data-start=\"5177\" data-end=\"5274\"><strong data-start=\"5177\" data-end=\"5185\">TopK<\/strong>, <strong data-start=\"5187\" data-end=\"5207\">Count-Min Sketch<\/strong>, <strong data-start=\"5209\" data-end=\"5220\">ReBloom<\/strong>: Probabilistic data structures for advanced analytics<\/p>\n<\/li>\n<\/ul>\n<hr class=\"\" data-start=\"5276\" data-end=\"5279\" \/>\n<h2 class=\"\" data-start=\"5281\" data-end=\"5329\">Redis Use Cases in Transactions and Analytics<\/h2>\n<p class=\"\" data-start=\"5331\" data-end=\"5499\">Modern smart applications rely on Redis for its ability to perform <strong data-start=\"5398\" data-end=\"5438\">real-time transactions and analytics<\/strong> simultaneously, without compromising speed or functionality.<\/p>\n<h3 class=\"\" data-start=\"5501\" data-end=\"5536\">1. Personalized Recommendations<\/h3>\n<p class=\"\" data-start=\"5537\" data-end=\"5572\">Personalization typically involves:<\/p>\n<ul data-start=\"5573\" data-end=\"5714\">\n<li class=\"\" data-start=\"5573\" data-end=\"5635\">\n<p class=\"\" data-start=\"5575\" data-end=\"5635\">User profiles (history, location, demographics, preferences)<\/p>\n<\/li>\n<li class=\"\" data-start=\"5636\" data-end=\"5714\">\n<p class=\"\" data-start=\"5638\" data-end=\"5714\">Business rules for offers (conversion goals, segmentation, behavior context)<\/p>\n<\/li>\n<\/ul>\n<p class=\"\" data-start=\"5716\" data-end=\"6004\">Redis serves as the <strong data-start=\"5736\" data-end=\"5759\">transactional store<\/strong> capturing user actions in real-time, while simultaneously enabling high-speed updates to user profiles and real-time calculations like counting, scoring, and ranking to trigger dynamic personalized offers \u2014 all with <strong data-start=\"5976\" data-end=\"5995\">sub-millisecond<\/strong> latency.<\/p>\n<p class=\"\" data-start=\"6006\" data-end=\"6119\">Sorted Sets in Redis allow rapid similarity scoring, enabling the right recommendation to be presented instantly.<\/p>\n<p style=\"text-align: center;\" data-start=\"6006\" data-end=\"6119\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.25.19.png\" width=\"547\" height=\"388\" \/><\/p>\n<h3 class=\"\" data-start=\"6121\" data-end=\"6156\">2. Machine Learning Predictions<\/h3>\n<p class=\"\" data-start=\"6157\" data-end=\"6382\">For dynamic correlations within user behavior, <strong data-start=\"6204\" data-end=\"6231\">machine learning models<\/strong> are often trained offline with frameworks like Spark or TensorFlow. However, traditional models stored on disk are too slow for real-time predictions.<\/p>\n<p class=\"\" data-start=\"6384\" data-end=\"6756\"><strong data-start=\"6384\" data-end=\"6396\">Redis-ML<\/strong> allows you to <strong data-start=\"6411\" data-end=\"6494\">store, retrieve, execute, and update machine learning models directly in memory<\/strong>, achieving the scale and speed needed for online inference within <strong data-start=\"6561\" data-end=\"6570\">50 ms<\/strong>.<br data-start=\"6571\" data-end=\"6574\" \/>It supports multiple ML models (Random Forests, Logistic Regression, Gradient Boosting Trees) and enables applications written in different languages to access models simultaneously.<\/p>\n<p class=\"\" data-start=\"6758\" data-end=\"6893\">For simple feed-forward neural networks, <strong data-start=\"6799\" data-end=\"6815\">neural-redis<\/strong> provides an open-source Redis module for in-memory neural network operations.<\/p>\n<hr class=\"\" data-start=\"6895\" data-end=\"6898\" \/>\n<h3 class=\"\" data-start=\"6900\" data-end=\"6922\">3. Fraud Detection<\/h3>\n<p class=\"\" data-start=\"6923\" data-end=\"7063\">Fraud detection systems must process <strong data-start=\"6960\" data-end=\"6987\">millions of data points<\/strong> and <strong data-start=\"6992\" data-end=\"7036\">inline millions of customer transactions<\/strong> for maximum effectiveness.<\/p>\n<p style=\"text-align: center;\" data-start=\"6923\" data-end=\"7063\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.25.29.png\" width=\"522\" height=\"425\" \/><\/p>\n<p class=\"\" data-start=\"7065\" data-end=\"7081\">Redis, with its:<\/p>\n<ul data-start=\"7082\" data-end=\"7245\">\n<li class=\"\" data-start=\"7082\" data-end=\"7100\">\n<p class=\"\" data-start=\"7084\" data-end=\"7100\">High performance<\/p>\n<\/li>\n<li class=\"\" data-start=\"7101\" data-end=\"7146\">\n<p class=\"\" data-start=\"7103\" data-end=\"7146\">Stream data processing (via Pub\/Sub, Lists)<\/p>\n<\/li>\n<li class=\"\" data-start=\"7147\" data-end=\"7187\">\n<p class=\"\" data-start=\"7149\" data-end=\"7187\">Built-in analytics (Sets, HyperLogLog)<\/p>\n<\/li>\n<li class=\"\" data-start=\"7188\" data-end=\"7245\">\n<p class=\"\" data-start=\"7190\" data-end=\"7245\">Geospatial and graph analysis (Geo, RedisGraph modules)<\/p>\n<\/li>\n<\/ul>\n<p class=\"\" data-start=\"7247\" data-end=\"7361\">becomes the natural choice for <strong data-start=\"7278\" data-end=\"7307\">real-time fraud detection<\/strong> where <strong data-start=\"7314\" data-end=\"7360\">application latency must stay within 100ms<\/strong>.<\/p>\n<p class=\"\" data-start=\"7363\" data-end=\"7426\">Fraud detection solutions benefit from Redis\u2019 capabilities for:<\/p>\n<ul data-start=\"7427\" data-end=\"7588\">\n<li class=\"\" data-start=\"7427\" data-end=\"7458\">\n<p class=\"\" data-start=\"7429\" data-end=\"7458\">Fast session updates (Hashes)<\/p>\n<\/li>\n<li class=\"\" data-start=\"7459\" data-end=\"7489\">\n<p class=\"\" data-start=\"7461\" data-end=\"7489\">Queue\/job management (Lists)<\/p>\n<\/li>\n<li class=\"\" data-start=\"7490\" data-end=\"7537\">\n<p class=\"\" data-start=\"7492\" data-end=\"7537\">Immediate alerting and notification (Pub\/Sub)<\/p>\n<\/li>\n<li class=\"\" data-start=\"7538\" data-end=\"7588\">\n<p class=\"\" data-start=\"7540\" data-end=\"7588\">Integrated machine learning inference (Redis-ML)<\/p>\n<\/li>\n<\/ul>\n<blockquote data-start=\"7590\" data-end=\"7884\">\n<p class=\"\" data-start=\"7592\" data-end=\"7884\"><em data-start=\"7592\" data-end=\"7839\">&#8220;Using Redis Enterprise in our fraud detection services has been a phenomenal decision. It allowed us to manage tens of billions of transactions daily while scaling with our exponential growth, and speeding up fraud detection for all customers.&#8221;<\/em> \u2014 Ravi Sandepudi, Engineering Lead, Simility<\/p>\n<\/blockquote>\n<hr class=\"\" data-start=\"7886\" data-end=\"7889\" \/>\n<h3 class=\"\" data-start=\"7891\" data-end=\"7919\">4. Interactive Reporting<\/h3>\n<p class=\"\" data-start=\"7920\" data-end=\"8057\">When users interactively generate reports from <strong data-start=\"7967\" data-end=\"7990\">millions of records<\/strong>, they expect <strong data-start=\"8004\" data-end=\"8030\">data retrieval in 10ms<\/strong> and <strong data-start=\"8035\" data-end=\"8056\">pagination in 3ms<\/strong>.<\/p>\n<p class=\"\" data-start=\"8059\" data-end=\"8260\">Large data stores cannot meet this need alone. Redis acts as a <strong data-start=\"8122\" data-end=\"8160\">high-speed intermediate data store<\/strong> with <strong data-start=\"8166\" data-end=\"8192\">pre-sorted Sorted Sets<\/strong>, enabling ultra-low latency even when handling millions of records.<\/p>\n<p class=\"\" data-start=\"8262\" data-end=\"8413\">Redis is often used alongside RDBMS and large NoSQL databases (e.g., HBase, Cassandra) to deliver <strong data-start=\"8360\" data-end=\"8395\">high throughput and low latency<\/strong> user experiences.<\/p>\n<hr class=\"\" data-start=\"8415\" data-end=\"8418\" \/>\n<h2 class=\"\" data-start=\"8420\" data-end=\"8458\">Managing Terabytes of Data in Redis<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/dkm-website.oss-cn-shenzhen.aliyuncs.com\/upload\/0\/dataBlog\/blog\/Redis\/%E6%88%AA%E5%B1%8F2024-08-21%2015.25.36.png\" width=\"656\" height=\"292\" \/><\/p>\n<p class=\"\" data-start=\"8460\" data-end=\"8513\">Running in-memory, Redis faces two common challenges:<\/p>\n<ol data-start=\"8514\" data-end=\"8594\">\n<li class=\"\" data-start=\"8514\" data-end=\"8539\">\n<p class=\"\" data-start=\"8517\" data-end=\"8539\"><strong data-start=\"8517\" data-end=\"8539\">How to scale Redis<\/strong><\/p>\n<\/li>\n<li class=\"\" data-start=\"8540\" data-end=\"8594\">\n<p class=\"\" data-start=\"8543\" data-end=\"8594\"><strong data-start=\"8543\" data-end=\"8594\">How to manage large volumes of data efficiently<\/strong><\/p>\n<\/li>\n<\/ol>\n<p class=\"\" data-start=\"8596\" data-end=\"8637\"><strong data-start=\"8596\" data-end=\"8637\">Scaling Redis with High Availability:<\/strong><\/p>\n<ul data-start=\"8638\" data-end=\"8874\">\n<li class=\"\" data-start=\"8638\" data-end=\"8752\">\n<p class=\"\" data-start=\"8640\" data-end=\"8752\">Redis is single-threaded, but scales horizontally by <strong data-start=\"8693\" data-end=\"8705\">sharding<\/strong> (partitioning data across multiple instances).<\/p>\n<\/li>\n<li class=\"\" data-start=\"8753\" data-end=\"8874\">\n<p class=\"\" data-start=\"8755\" data-end=\"8874\">Redis can operate in <strong data-start=\"8776\" data-end=\"8795\">persistent mode<\/strong> with <strong data-start=\"8801\" data-end=\"8839\">multi-rack\/region\/datacenter\/cloud<\/strong> replication for high availability.<\/p>\n<\/li>\n<\/ul>\n<p class=\"\" data-start=\"8876\" data-end=\"9045\">Using <strong data-start=\"8882\" data-end=\"8902\">Redis Enterprise<\/strong> software, you can create <strong data-start=\"8928\" data-end=\"8951\">shared memory pools<\/strong> across a cluster of servers automatically for <strong data-start=\"8998\" data-end=\"9018\">seamless scaling<\/strong> and <strong data-start=\"9023\" data-end=\"9044\">high availability<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Smart and delightful customer experiences put great demands on the performance of interactive applications. This requires high-performance databases that can<\/p>\n","protected":false},"author":92,"featured_media":9964,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":"","_wp_rev_ctl_limit":""},"categories":[181],"tags":[],"class_list":["post-9963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-redis"],"acf":[],"aioseo_notices":[],"rttpg_featured_image_url":{"full":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"landscape":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"portraits":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"thumbnail":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-150x150.png",150,150,true],"medium":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-300x200.png",300,200,true],"large":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"1536x1536":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"2048x2048":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false],"woodmart_shop_catalog_x2":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-600x500.png",600,500,true],"woocommerce_thumbnail":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-300x300.png",300,300,true],"woocommerce_single":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-600x400.png",600,400,true],"woocommerce_gallery_thumbnail":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5-150x100.png",150,100,true],"rt_custom":["https:\/\/www.dkmeco.com\/en\/wp-content\/uploads\/2025\/04\/61db75570520ee77900da73df8687fb5.png",750,500,false]},"rttpg_author":{"display_name":"dkm-admin","author_link":"https:\/\/www.dkmeco.com\/en\/author\/dkm-admin\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/www.dkmeco.com\/en\/category\/redis\/\" rel=\"category tag\">Redis<\/a>","rttpg_excerpt":"Smart and delightful customer experiences put great demands on the performance of interactive applications. This requires high-performance databases that can","_links":{"self":[{"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/posts\/9963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/users\/92"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/comments?post=9963"}],"version-history":[{"count":3,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/posts\/9963\/revisions"}],"predecessor-version":[{"id":9968,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/posts\/9963\/revisions\/9968"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/media\/9964"}],"wp:attachment":[{"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/media?parent=9963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/categories?post=9963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dkmeco.com\/en\/wp-json\/wp\/v2\/tags?post=9963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}