1. 程式人生 > 資料庫 >Python操作redis系列--列表(list)

Python操作redis系列--列表(list)

<div id="cnblogs_post_body" class="blogpost-body">
<div class="cnblogs_code">
<pre># -*- coding: utf-<span style="color: rgba(128, 0, 128, 1)">8</span> -*-<span style="color: rgba(0, 0, 0, 1)">
import redis
r </span>=redis.Redis(host=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">123.156.74.190</span><span style="color: rgba(128, 0, 0, 1)">"</span>,port=<span style="color: rgba(128, 0, 128, 1)">6379</span>,password=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">66666666666</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>

</div>
<pre>1. Lpush 命令將一個或多個值插入到列表頭部。 如果 key 不存在,一個空列表會被建立並執行 LPUSH 操作。 當 key 存在但不是列表型別時,返回一個錯誤。<br>執行 LPUSH 命令後,列表的長度。</pre>
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="複製程式碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="複製程式碼"></a></span></div>
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.lpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是5</span>

<span style="color: rgba(0, 0, 255, 1)">print</span> r.set(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是 True</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是 redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value,原因是鍵 2 是字串型別,我們用list中的lpush給他新增元素</span></pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="複製程式碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="複製程式碼"></a></span></div></div>
<pre>2. Rpush 命令用於將一個或多個值插入到列表的尾部(最右邊)。<br>如果列表不存在,一個空列表會被建立並執行 RPUSH 操作。 當列表存在但不是列表型別時,返回一個錯誤。<br>執行 RPUSH 操作後,列表的長度。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,4,5) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是5</span></pre>
</div>
<p>資料格式:          </p>
<p>    <img src="https://www.icode9.com/img/i/?n=15&i=blog/945786/201706/945786-20170622185306288-1902959097.png" alt=""></p>
<pre>3.Blpop 命令移出並獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。<br>如果列表為空,返回一個 None 。 否則,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4,5,6,) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是6</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.blpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('3', '1')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.blpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('3', '2')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.blpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('3', '3')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.blpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span>,timeout=2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">因為鍵 4 不存在,所以2秒後輸出的結果是None</span></pre>
</div>
<pre>4.Brpop 命令移出並獲取列表的最後一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。<br>假如在指定時間內沒有任何元素被彈出,則返回一個None 和等待時長。 反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4,5,6,) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是6</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.brpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('4', '6')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.brpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('4', '5')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.brpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是('4', '4')</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.brpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5</span><span style="color: rgba(128, 0, 0, 1)">"</span>,timeout=2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">因為鍵 4 不存在,所以2秒後輸出的結果是None</span></pre>
</div>
<pre>5. Brpoplpush 命令從列表中彈出一個值,將彈出的元素插入到另外一個列表中並返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。<br>假如在指定時間內沒有任何元素被彈出,則返回一個 None 和等待時長。 反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素的值,第二個元素是等待時長。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">22</span><span style="color: rgba(128, 0, 0, 1)">"</span>,4,5,6,) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.brpoplpush(src=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,dst=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">22</span><span style="color: rgba(128, 0, 0, 1)">"</span>,timeout=2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3<br><br></span>print r.brpoplpush(src="44",dst="22",timeout=2) #鍵44 不存在,輸出的結果是None</pre>
</div>
<table style="height: 184px; width: 854px" border="0">
<tbody>
<tr>
<td>
<p>鍵 11 的值: &nbsp;</p>
<p><img src="https://www.icode9.com/img/i/?n=15&i=blog/945786/201706/945786-20170622191918288-1626530719.png" alt=""></p>
<p>&nbsp;</p>
</td>
<td>
<p>鍵22 的值:</p>
<p><img src="https://www.icode9.com/img/i/?n=15&i=blog/945786/201706/945786-20170622192157648-338587223.png" alt=""></p>
<p>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>6. Lindex 命令用於通過索引獲取列表中的元素。你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。</p>
<pre><em>列表中下標為指定索引值的元素。 如果指定索引值不在列表的區間範圍內,返回 None 。<br></em></pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lindex(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lindex(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lindex(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是None</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lindex(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是None</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lindex(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">6</span><span style="color: rgba(128, 0, 0, 1)">"</span>,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span></pre>
</div>
<p>7. Linsert 命令用於在列表的元素前或者後插入元素。</p>
<pre><em>當指定元素不存在於列表中時,不執行任何操作。 當列表不存在時,被視為空列表,不執行任何操作。 如果 key 不是列表型別,返回一個錯誤。<br>如果命令執行成功,返回插入操作完成之後,列表的長度。 如果沒有找到指定元素 ,返回 -1 。 如果 key 不存在或為空列表,返回 0 。<br></em></pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">7</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">7</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.linsert(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">7</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">BEFORE</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span>,12) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span></pre>
</div>
<p>插入後的結果是:<img src="https://www.icode9.com/img/i/?n=15&i=blog/945786/201706/945786-20170622195016163-2133140808.png" alt=""></p>
<pre> 8. Llen 命令用於返回列表的長度。 如果列表 key 不存在,則 key 被解釋為一個空列表,返回 0 。 如果 key 不是列表型別,返回一個錯誤。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.llen(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">key 不存在,輸出的結果是0</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.llen(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.llen(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">8</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span></pre>
</div>
<pre>9. Lpop 命令用於移除並返回列表的第一個元素。<br>列表的第一個元素。 當列表 key 不存在時,返回 None 。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.lpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">9</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是None</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">9</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">9</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">9</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span></pre>
</div>
<p>說明:被移除掉的是第一個值 1, &nbsp;值2沒有被移除</p>
<pre>10.Lpushx 將一個或多個值插入到已存在的列表頭部,列表不存在時操作無效。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpushx(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpushx(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span>,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpushx(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是5</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是['1', '2', '3']</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是['1', '2', '1', '2', '3']</span></pre>
</div>
<pre>11.Lrange 返回列表中指定區間內的元素,區間以偏移量 START 和 END 指定。 其中 0 表示列表的第一個元素, 1 表示列表的第二個元素,以此類推。<br> 你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是['1', '2', '3', '4']</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">11</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">輸出的結果是['2', '3']</span></pre>
</div>
<pre>12.Lrem 根據引數 COUNT 的值,移除列表中與引數 VALUE 相等的元素。<br>COUNT 的值可以是以下幾種:<br>count &gt; 0 : 從表頭開始向表尾搜尋,移除與 VALUE 相等的元素,數量為 COUNT 。<br>count &lt; 0 : 從表尾開始向表頭搜尋,移除與 VALUE 相等的元素,數量為 COUNT 的絕對值。<br>count = 0 : 移除表中所有與 VALUE 相等的值。<br>被移除元素的數量。 列表不存在時返回 0 。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>, 1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>, 1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>, 2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是3</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>, 1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrem(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,-2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['1', '2']</span></pre>
</div>
<pre>13. Lset 通過索引來設定元素的值。<br>當索引引數超出範圍,或對一個空列表進行 LSET 時,返回一個錯誤<br>操作成功返回 True ,否則返回錯誤資訊。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lset(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,5) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是True</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">13</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['1', '5', '3', '4']</span></pre>
</div>
<pre>14. Ltrim 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。<br>下標 0 表示列表的第一個元素,以 1 表示列表的第二個元素,以此類推。 <br>你也可以使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">14</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.ltrim(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">14</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,-2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是True</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">14</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['2', '3']</span></pre>
</div>
<div class="cnblogs_code">
<pre>15<span style="color: rgba(0, 0, 0, 1)">. Rpop 命令用於移除並返回列表的最後一個元素。
列表的最後一個元素。 當列表不存在時,返回 None 。</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">15</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpop(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">15</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">15</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['1', '2', '3']</span></pre>
</div>
<pre>16.Rpoplpush 命令用於移除列表的最後一個元素,並將該元素新增到另一個列表並返回。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">16</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">17</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1,2,3,4) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpoplpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">16</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">17</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是4</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">16</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['1', '2', '3']</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">17</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['4', '1', '2', '3', '4']</span></pre>
</div>
<pre>17.Rpushx 命令用於將一個或多個值插入到已存在的列表尾部(最右邊)。如果列表不存在,操作無效。</pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">print</span> r.rpushx(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">18</span><span style="color: rgba(128, 0, 0, 1)">"</span>,1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 因為鍵18 不存在,所以插入失敗,輸出的結果是0</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpush(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">18</span><span style="color: rgba(128, 0, 0, 1)">"</span>,2) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是1</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.rpushx(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">18</span><span style="color: rgba(128, 0, 0, 1)">"</span>,3) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是2</span>
<span style="color: rgba(0, 0, 255, 1)">print</span> r.lrange(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">18</span><span style="color: rgba(128, 0, 0, 1)">"</span>,0,-1) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 輸出的結果是['2', '3']</span></pre>
</div>
<pre><strong>&nbsp;</strong></pre>
<p>redis安裝和配置(一) http://www.cnblogs.com/xuchunlin/p/6676308.html</p>
<p>redis學習 (key)鍵,Python操作redis 鍵 (二) http://www.cnblogs.com/xuchunlin/p/7061524.html</p>
<p>Python操作redis字串(String)詳解 (三) http://www.cnblogs.com/xuchunlin/p/7062065.html</p>
<p>Python操作redis系列以 雜湊(Hash)命令詳解(四) http://www.cnblogs.com/xuchunlin/p/7064860.html</p>
<p>Python操作redis系列之 列表(list) (五) http://www.cnblogs.com/xuchunlin/p/7067154.html</p>
<p>Python操作redis學習系列之(集合)set,redis set詳解 (六)http://www.cnblogs.com/xuchunlin/p/7070267.html</p>
<p>python 操作redis之——有序集合(sorted set) (七) http://www.cnblogs.com/xuchunlin/p/7097272.html</p>
<p>python 操作redis之——HyperLogLog (八) http://www.cnblogs.com/xuchunlin/p/7097272.html</p>
<p>redis.windows.conf各項配置引數介紹 (九) http://www.cnblogs.com/xuchunlin/p/7097729.html</p>
<pre><strong><br><br><br>附錄:redis命令</strong></pre>
<table class="table table-bordered table-striped" style="height: 419px; width: 1077px">
<tbody>
<tr><th class="eye-protector-processed">命令</th><th class="eye-protector-processed">描述</th></tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3577.html">Redis Blpop 命令</a></td>
<td>移出並獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3578.html">Redis Brpop 命令</a></td>
<td class="eye-protector-processed">移出並獲取列表的最後一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3579.html">Redis Brpoplpush 命令</a></td>
<td>從列表中彈出一個值,將彈出的元素插入到另外一個列表中並返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3580.html">Redis Lindex 命令</a></td>
<td class="eye-protector-processed">通過索引獲取列表中的元素</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3581.html">Redis Linsert 命令</a></td>
<td>在列表的元素前或者後插入元素</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3582.html">Redis Llen 命令</a></td>
<td class="eye-protector-processed">獲取列表長度</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3583.html">Redis Lpop 命令</a></td>
<td>移出並獲取列表的第一個元素</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3584.html">Redis Lpush 命令</a></td>
<td class="eye-protector-processed">將一個或多個值插入到列表頭部</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3585.html">Redis Lpushx 命令</a></td>
<td>將一個或多個值插入到已存在的列表頭部</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3586.html">Redis Lrange 命令</a></td>
<td class="eye-protector-processed">獲取列表指定範圍內的元素</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3587.html">Redis Lrem 命令</a></td>
<td>移除列表元素</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3588.html">Redis Lset 命令</a></td>
<td class="eye-protector-processed">通過索引設定列表元素的值</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3589.html">Redis Ltrim 命令</a></td>
<td>對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3590.html">Redis Rpop 命令</a></td>
<td class="eye-protector-processed">移除並獲取列表最後一個元素</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3591.html">Redis Rpoplpush 命令</a></td>
<td>移除列表的最後一個元素,並將該元素新增到另一個列表並返回</td>
</tr>
<tr>
<td class="eye-protector-processed"><a href="http://www.redis.net.cn/order/3592.html">Redis Rpush 命令</a></td>
<td class="eye-protector-processed">在列表中新增一個或多個值</td>
</tr>
<tr>
<td><a href="http://www.redis.net.cn/order/3593.html">Redis Rpushx 命令</a></td>
<td>為已存在的列表新增值</td>
</tr>
</tbody>
</table>
<pre><br><br></pre>
<pre><br><br></pre>
<pre><br><br></pre>
<pre><br><br></pre>
<pre><em id="__mceDel">&nbsp;</em></pre>
<pre><em id="__mceDel">&nbsp;</em></pre>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">      &nbsp;&nbsp; &nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
</div>