{"id":11657,"date":"2024-03-14T14:29:59","date_gmt":"2024-03-14T14:29:59","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/"},"modified":"2025-08-04T15:07:07","modified_gmt":"2025-08-04T15:07:07","slug":"how-can-redis-prevent-duplicate-submission-operations","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/","title":{"rendered":"Prevent Duplicate Submissions with Redis"},"content":{"rendered":"<p>To prevent duplicate submissions, you can use Redis transaction mechanism and atomic operations. Here is a common approach:<\/p>\n<ol>\n<li>Utilize Redis&#8217; transaction mechanism and WATCH command to achieve atomic operations. By using the WATCH command to monitor one or more keys, the transaction will fail if another client modifies these keys. Prior to executing the transaction, you can use the GET command to retrieve the value of the key, perform operations within the transaction, and finally use the EXEC command to commit the transaction.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>WATCH key\r\nvalue = GET key\r\n<span class=\"hljs-keyword\">if<\/span> value == expected_value:\r\n    MULTI\r\n    <span class=\"hljs-comment\"># \u5728\u4e8b\u52a1\u4e2d\u8fdb\u884c\u64cd\u4f5c<\/span>\r\n    EXEC\r\n<span class=\"hljs-keyword\">else<\/span>:\r\n    UNWATCH\r\n<\/code><\/pre>\n<ol>\n<li>The SETNX command in Redis can be used to set a key&#8217;s value only if the key does not already exist. This feature can be utilized to prevent duplicate submission of operations.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">if<\/span> SETNX key <span class=\"hljs-string\">\"1\"<\/span>:\r\n    <span class=\"hljs-comment\"># \u8bbe\u7f6e\u6210\u529f\uff0c\u8fdb\u884c\u64cd\u4f5c<\/span>\r\n<span class=\"hljs-keyword\">else<\/span>:\r\n    <span class=\"hljs-comment\"># \u952e\u5df2\u5b58\u5728\uff0c\u8bf4\u660e\u64cd\u4f5c\u5df2\u7ecf\u63d0\u4ea4\u8fc7\u4e86<\/span>\r\n<\/code><\/pre>\n<p>By using the above method, it is possible to effectively prevent duplicate submission operations, ensuring that each operation is only executed once. Additionally, it can also be strengthened by combining it with setting expiration times and other operations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To prevent duplicate submissions, you can use Redis transaction mechanism and atomic operations. Here is a common approach: Utilize Redis&#8217; transaction mechanism and WATCH command to achieve atomic operations. By using the WATCH command to monitor one or more keys, the transaction will fail if another client modifies these keys. Prior to executing the transaction, [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[2747,15079,15077,2465,15078],"class_list":["post-11657","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-atomic-operations","tag-prevent-duplicate-submissions","tag-redis-duplicate-submission","tag-redis-transactions","tag-redis-watch-command"],"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>Prevent Duplicate Submissions with Redis - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Stop duplicate operations with Redis transactions, WATCH command &amp; atomic operations. Implement reliable submission prevention.\" \/>\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-can-redis-prevent-duplicate-submission-operations\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prevent Duplicate Submissions with Redis\" \/>\n<meta property=\"og:description\" content=\"Stop duplicate operations with Redis transactions, WATCH command &amp; atomic operations. Implement reliable submission prevention.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\" \/>\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-14T14:29:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T15:07:07+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\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=\"Sophia Anderson\" \/>\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-can-redis-prevent-duplicate-submission-operations\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"Prevent Duplicate Submissions with Redis\",\"datePublished\":\"2024-03-14T14:29:59+00:00\",\"dateModified\":\"2025-08-04T15:07:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\"},\"wordCount\":159,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"atomic operations\",\"Prevent duplicate submissions\",\"Redis duplicate submission\",\"Redis transactions\",\"Redis WATCH command\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\",\"name\":\"Prevent Duplicate Submissions with Redis - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T14:29:59+00:00\",\"dateModified\":\"2025-08-04T15:07:07+00:00\",\"description\":\"Stop duplicate operations with Redis transactions, WATCH command & atomic operations. Implement reliable submission prevention.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prevent Duplicate Submissions with Redis\"}]},{\"@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\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Prevent Duplicate Submissions with Redis - Blog - Silicon Cloud","description":"Stop duplicate operations with Redis transactions, WATCH command & atomic operations. Implement reliable submission prevention.","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-can-redis-prevent-duplicate-submission-operations\/","og_locale":"en_US","og_type":"article","og_title":"Prevent Duplicate Submissions with Redis","og_description":"Stop duplicate operations with Redis transactions, WATCH command & atomic operations. Implement reliable submission prevention.","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T14:29:59+00:00","article_modified_time":"2025-08-04T15:07:07+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"Prevent Duplicate Submissions with Redis","datePublished":"2024-03-14T14:29:59+00:00","dateModified":"2025-08-04T15:07:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/"},"wordCount":159,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["atomic operations","Prevent duplicate submissions","Redis duplicate submission","Redis transactions","Redis WATCH command"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/","name":"Prevent Duplicate Submissions with Redis - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T14:29:59+00:00","dateModified":"2025-08-04T15:07:07+00:00","description":"Stop duplicate operations with Redis transactions, WATCH command & atomic operations. Implement reliable submission prevention.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-redis-prevent-duplicate-submission-operations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prevent Duplicate Submissions with Redis"}]},{"@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\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11657","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=11657"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11657\/revisions"}],"predecessor-version":[{"id":155441,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/11657\/revisions\/155441"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=11657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=11657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=11657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}