<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Developer Tasks on etcd</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/</link><description>Recent content in Developer Tasks on etcd</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/index.xml" rel="self" type="application/rss+xml"/><item><title>Reading from etcd</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/reading-from-etcd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/reading-from-etcd/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;code&gt;etcdctl&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="procedure"&gt;Procedure&lt;/h2&gt;
&lt;p&gt;Use the &lt;code&gt;get&lt;/code&gt; subcommand to read from etcd:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; get foo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;foo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hello World!
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;foo&lt;/code&gt; is the requested key&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hello World!&lt;/code&gt; is the retrieved value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Or, for formatted output:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ etcdctl --endpoints=$ENDPOINTS --write-out=&amp;#34;json&amp;#34; get foo
{&amp;#34;header&amp;#34;:{&amp;#34;cluster_id&amp;#34;:289318470931837780,&amp;#34;member_id&amp;#34;:14947050114012957595,&amp;#34;revision&amp;#34;:3,&amp;#34;raft_term&amp;#34;:4,
&amp;#34;kvs&amp;#34;:[{&amp;#34;key&amp;#34;:&amp;#34;Zm9v&amp;#34;,&amp;#34;create_revision&amp;#34;:2,&amp;#34;mod_revision&amp;#34;:3,&amp;#34;version&amp;#34;:2,&amp;#34;value&amp;#34;:&amp;#34;SGVsbG8gV29ybGQh&amp;#34;}]}}
$
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;where &lt;code&gt;write-out=&amp;quot;json&amp;quot;&lt;/code&gt; causes the value to be output in JSON format (note that the key is not returned).&lt;/p&gt;</description></item><item><title>Writing to etcd</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/writing-to-etcd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/writing-to-etcd/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;code&gt;etcdctl&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="procedure"&gt;Procedure&lt;/h2&gt;
&lt;p&gt;Use the &lt;code&gt;put&lt;/code&gt; subcommand to write a key-value pair:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put foo &lt;span style="color:#4e9a06"&gt;&amp;#34;Hello World!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;foo&lt;/code&gt; is the key name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Hello World!&amp;quot;&lt;/code&gt; is the quote-delimited value&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>How to get keys by prefix</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-get-key-by-prefix/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-get-key-by-prefix/</guid><description>&lt;h2 id="pre-requisites"&gt;Pre-requisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://etcd.io/docs/v3.6/install/" target="_blank" rel="noopener"&gt;Install etcdctl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://etcd.io/docs/v3.6/dev-guide/local_cluster/" target="_blank" rel="noopener"&gt;Setup a local cluster&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="get-keys-by-prefix"&gt;Get keys by prefix&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; get PREFIX --prefix
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="global-options"&gt;Global Options&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=[&lt;/span&gt;127.0.0.1:2379&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;, gRPC endpoints
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Options&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--prefix, get a range of keys with matching prefix
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="example"&gt;Example&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/03_etcdctl_get_by_prefix_2016050501.gif" alt="03_etcdctl_get_by_prefix_2016050501"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put web1 value1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put web2 value2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put web3 value3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; get web --prefix
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to delete keys</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-delete-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-delete-keys/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://etcd.io/docs/v3.6/install/" target="_blank" rel="noopener"&gt;&lt;code&gt;etcd&lt;/code&gt; and &lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="add-or-delete-keys"&gt;Add or delete keys&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;del&lt;/code&gt; to remove the specified key or range of keys:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl del &lt;span style="color:#000"&gt;$KEY&lt;/span&gt; &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#000"&gt;$END_KEY&lt;/span&gt;&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Options&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--prefix&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: delete keys with matching prefix
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--prev-kv&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: &lt;span style="color:#204a87;font-weight:bold"&gt;return&lt;/span&gt; deleted key-value pairs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--from-key&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: delete keys that are greater than or equal to the given key using byte compare
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--range&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: delete range of keys without delay
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;127.0.0.1:2379&amp;#34;&lt;/span&gt;: gRPC endpoints
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="examples"&gt;Examples&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/04_etcdctl_delete_2016050601.gif" alt="04_etcdctl_delete_2016050601"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put key myvalue
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; del key
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put k1 value1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put k2 value2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; del k --prefix
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to make multiple writes in a transaction</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-transactional-write/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-transactional-write/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://etcd.io/docs/v3.6/install/" target="_blank" rel="noopener"&gt;&lt;code&gt;etcd&lt;/code&gt; and &lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running &lt;code&gt;etcd&lt;/code&gt; cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="terminology"&gt;Terminology&lt;/h2&gt;
&lt;p&gt;Here are definitions of some key terms used in the &lt;a href="#example"&gt;Example&lt;/a&gt; below.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Terms&lt;/th&gt;
 &lt;th&gt;Definition&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://github.com/etcd-io/etcd/blob/main/etcdctl/README.md#etcdctl" target="_blank" rel="noopener"&gt;etcdctl&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;The command line tool for interacting with the etcd server.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a href="https://github.com/etcd-io/etcd/blob/main/etcdctl/README.md#txn-options" target="_blank" rel="noopener"&gt;&lt;code&gt;txn&lt;/code&gt;&lt;/a&gt; command&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;txn&lt;/code&gt; command is an abbreviation for &amp;ldquo;transaction&amp;rdquo;. It reads multiple etcd requests from standard input and applies them as a single atomic transaction. A transaction consists of list of conditions, a list of requests to apply if all the conditions are true, and a list of requests to apply if any condition is false. View &lt;a href="https://github.com/etcd-io/etcd/blob/main/etcdctl/README.md#key-value-commands" target="_blank" rel="noopener"&gt;etcdctl key-value commands&lt;/a&gt; for more information.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;compare&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;The &lt;code&gt;compare&lt;/code&gt; clause within a transaction (&lt;code&gt;txn&lt;/code&gt;) serves as a conditional check that determines whether the transaction&amp;rsquo;s operations should proceed. It ensures changes are only applied if the current state of the key-value store matches expected conditions, thereby maintaining data consistency and preventing conflicts in concurrent environments. To see how the command is structured, view &lt;a href="#2-perform-a-transaction"&gt;Perform a transaction&lt;/a&gt; section below.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="transactions"&gt;Transactions&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;txn&lt;/code&gt; to process all the requests in one transaction:&lt;/p&gt;</description></item><item><title>How to watch keys</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-watch-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-watch-keys/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://etcd.io/docs/v3.6/install/" target="_blank" rel="noopener"&gt;&lt;code&gt;etcd&lt;/code&gt; and &lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="watching-keys"&gt;Watching keys&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;watch&lt;/code&gt; to get notified of future changes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl watch &lt;span style="color:#000"&gt;$KEY&lt;/span&gt; &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt;&lt;span style="color:#000"&gt;$END_KEY&lt;/span&gt;&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Options&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-i, --interactive&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: interactive mode
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--prefix&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: watch on a prefix &lt;span style="color:#204a87;font-weight:bold"&gt;if&lt;/span&gt; prefix is &lt;span style="color:#204a87"&gt;set&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--rev&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;0: Revision to start watching
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--prev-kv&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: get the previous key-value pair before the event happens
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--progress-notify&lt;span style="color:#ce5c00;font-weight:bold"&gt;[=&lt;/span&gt;false&lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;: get periodic watch progress notification from server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#4e9a06"&gt;&amp;#34;127.0.0.1:2379&amp;#34;&lt;/span&gt;: gRPC endpoints
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="examples"&gt;Examples&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/06_etcdctl_watch_2016050501.gif" alt="06_etcdctl_watch_2016050501"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; watch stock1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put stock1 &lt;span style="color:#0000cf;font-weight:bold"&gt;1000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; watch stock --prefix
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put stock1 &lt;span style="color:#0000cf;font-weight:bold"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put stock2 &lt;span style="color:#0000cf;font-weight:bold"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to create lease</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-create-lease/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-create-lease/</guid><description>&lt;p&gt;&lt;code&gt;lease&lt;/code&gt; to write with TTL:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/07_etcdctl_lease_2016050501.gif" alt="07_etcdctl_lease_2016050501"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; lease grant &lt;span style="color:#0000cf;font-weight:bold"&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# lease 2be7547fbc6a5afa granted with TTL(300s)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; put sample value --lease&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;2be7547fbc6a5afa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; get sample
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; lease keep-alive 2be7547fbc6a5afa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; lease revoke 2be7547fbc6a5afa
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8f5902;font-style:italic"&gt;# or after 300 seconds&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; get sample
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to create locks</title><link>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-create-locks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-1113--etcd.netlify.app/docs/v3.6/tasks/developer/how-to-create-locks/</guid><description>&lt;p&gt;LOCK acquires a distributed mutex with a given name. Once the lock is acquired, it will be held until etcdctl is terminated.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://etcd.io/docs/v3.6/install/" target="_blank" rel="noopener"&gt;&lt;code&gt;etcd&lt;/code&gt; and &lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-a-lock"&gt;Creating a lock&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lock&lt;/code&gt; for distributed lock:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/08_etcdctl_lock_2016050501.gif" alt="08_etcdctl_lock_2016050501"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etcdctl --endpoints&lt;span style="color:#ce5c00;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#000"&gt;$ENDPOINTS&lt;/span&gt; lock mutex1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Options&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;endpoints - defines a comma-delimited list of machine addresses in the cluster.&lt;/li&gt;
&lt;li&gt;ttl - time out in seconds of lock session.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>