{"id":18060,"date":"2024-03-15T16:11:10","date_gmt":"2024-03-15T16:11:10","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/"},"modified":"2024-03-21T12:24:13","modified_gmt":"2024-03-21T12:24:13","slug":"how-does-redis-execute-lua-scripts","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/","title":{"rendered":"How does Redis execute Lua scripts?"},"content":{"rendered":"<p>There are two ways to execute Lua scripts in Redis: using the eval command and using the evalsha command.<\/p>\n<ol>\n<li>Evaluate a script with a specified number of keys and arguments using the EVAL command.<\/li>\n<li>script: Lua script<\/li>\n<li>number of keys: the amount of keys used in the script<\/li>\n<li>key [key &#8230;]: Keys used in the script<\/li>\n<li>script parameters<\/li>\n<li>For example, running a simple Lua script to add the values of two keys and return the result.<\/li>\n<li>Evaluate the sum of the values stored in keys &#8216;key1&#8217; and &#8216;key2&#8217; converted to numbers using Redis.<\/li>\n<li>EVALSHA Command:<br \/>\nEVALSHA sha1 numkeys key [key &#8230;] arg [arg &#8230;]<\/li>\n<li>The SHA1 hash value of the Lua script already stored in Redis.<\/li>\n<li>Number of keys: quantity of keys used by the script.<\/li>\n<li>key [key \u2026]: keys used by the script<\/li>\n<li>Script arguments: Arguments for the script<\/li>\n<li>Using the evalsha command to execute Lua scripts can improve performance because Redis will cache the scripts that have already been loaded.<\/li>\n<li>Firstly, load the Lua script into Redis.<\/li>\n<li>Load the script that sums up the values of two keys after converting them to numbers.<\/li>\n<li>Next, run the Lua script that has been loaded.<\/li>\n<li>Execute the SHA1 digest of the given script, passing in 2 keys, key1 and key2.<\/li>\n<\/ol>\n<p>Please note:<\/p>\n<ol>\n<li>When using the eval or evalsha commands to execute Lua scripts, you can use the redis.call function to call Redis commands, and you can also use the redis.pcall function to call Redis commands with error handling.<\/li>\n<li>KEYS and ARGV are global variables in Lua scripts that can be used to access the keys and arguments passed to the script.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>There are two ways to execute Lua scripts in Redis: using the eval command and using the evalsha command. Evaluate a script with a specified number of keys and arguments using the EVAL command. script: Lua script number of keys: the amount of keys used in the script key [key &#8230;]: Keys used in the [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-18060","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How does Redis execute Lua scripts? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How does Redis execute Lua scripts?\" \/>\n<meta property=\"og:description\" content=\"There are two ways to execute Lua scripts in Redis: using the eval command and using the evalsha command. Evaluate a script with a specified number of keys and arguments using the EVAL command. script: Lua script number of keys: the amount of keys used in the script key [key &#8230;]: Keys used in the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T16:11:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T12:24:13+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How does Redis execute Lua scripts?\",\"datePublished\":\"2024-03-15T16:11:10+00:00\",\"dateModified\":\"2024-03-21T12:24:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\"},\"wordCount\":273,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\",\"name\":\"How does Redis execute Lua scripts? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T16:11:10+00:00\",\"dateModified\":\"2024-03-21T12:24:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How does Redis execute Lua scripts?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How does Redis execute Lua scripts? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/","og_locale":"en_US","og_type":"article","og_title":"How does Redis execute Lua scripts?","og_description":"There are two ways to execute Lua scripts in Redis: using the eval command and using the evalsha command. Evaluate a script with a specified number of keys and arguments using the EVAL command. script: Lua script number of keys: the amount of keys used in the script key [key &#8230;]: Keys used in the [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T16:11:10+00:00","article_modified_time":"2024-03-21T12:24:13+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How does Redis execute Lua scripts?","datePublished":"2024-03-15T16:11:10+00:00","dateModified":"2024-03-21T12:24:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/"},"wordCount":273,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/","url":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/","name":"How does Redis execute Lua scripts? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T16:11:10+00:00","dateModified":"2024-03-21T12:24:13+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-does-redis-execute-lua-scripts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How does Redis execute Lua scripts?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=18060"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18060\/revisions"}],"predecessor-version":[{"id":51713,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/18060\/revisions\/51713"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=18060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=18060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=18060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}