redis 在 php 中的應用(List篇)

來源:互聯網
上載者:User

標籤:參數   sha   手冊   logs   第一個   操作   元素   nec   strong   

  本文為我閱讀了 redis參考手冊 之後結合 博友的部落格 編寫,注意 php_redis 和 redis-cli 的區別(主要是傳回值類型和參數用法)

目錄:

 

一、List(列表)

1、LPUSH

Redis Lpush 命令將一個或多個值插入到列表頭部。 如果 key 不存在,一個空列表會被建立並執行 LPUSH 操作。 當 key 存在但不是清單類型時,返回一個錯誤。(在Redis 2.4版本以前的 LPUSH 命令,都只接受單個 value 值。)

文法:

redis 127.0.0.1:6379> LPUSH KEY_NAME VALUE1.. VALUEN

傳回值: 執行 LPUSH 命令後,列表的長度。

可用版本: >= 1.0.0

時間複雜度:O(1)

具體執行個體:

<?php$redis = new redis();$redis -> connect(‘127.0.0.1‘,6379);$redis -> flushAll();var_dump($redis -> lPush(‘favorite_fruit‘,‘cherry‘));     // key 不存在,建立一個新的列表, 返回 int 1var_dump($redis -> lPush(‘favorite_fruit‘,‘banana‘));     // key 存在。但是 list 類型, 返回 int 2$redis -> set(‘pats‘,‘dog‘);var_dump($redis -> lPush(‘pats‘,‘cat‘));     // key 存在。但不是是 list 類型, 返回 boolean false

2、LPUSHX

Redis Lpushx 將一個或多個值插入到已存在的列表頭部,列表不存在時操作無效。

文法:

redis 127.0.0.1:6379> LPUSHX KEY_NAME VALUE1.. VALUEN

傳回值: LPUSHX 命令執行之後,列表的長度。

可用版本: >= 2.2.0

時間複雜度:O(1)

具體執行個體:

<?php$redis = new redis();$redis -> connect(‘127.0.0.1‘,6379);$redis -> flushAll();var_dump($redis -> rPush(‘favorite_fruit‘,‘cherry‘));var_dump($redis -> rPush(‘favorite_fruit‘,‘banana‘));var_dump($redis -> lPushx(‘favorite_fruit‘,‘apple‘));     //  返回 int 3var_dump($redis -> lRange(‘favorite_fruit‘,0,-1));//  array (size=3)//      0 => string ‘apple‘ (length=5)//      1 => string ‘cherry‘ (length=6)//      2 => string ‘banana‘ (length=6)var_dump($redis -> lPushx(‘fake_key‘,‘invalid_val‘));     //  列表不存在時操作無效返回 int (0)

3、RPUSH

  Redis Rpush 命令用於將一個或多個值插入到列表的尾部(最右邊)。如果列表不存在,一個空列表會被建立並執行 RPUSH 操作。 當列表存在但不是清單類型時,返回一個錯誤。(注意:在 Redis 2.4 版本以前的 RPUSH 命令,都只接受單個 value 值)。

文法:

redis 127.0.0.1:6379> RPUSH KEY_NAME VALUE1..VALUEN

傳回值: 執行 RPUSH 操作後,列表的長度。

可用版本: >= 1.0.0

時間複雜度:O(1)

具體執行個體:

<?php$redis = new redis();$redis -> connect(‘127.0.0.1‘,6379);$redis -> flushAll();var_dump($redis -> rPush(‘favorite_fruit‘,‘cherry‘));     // key 不存在,建立一個新的列表, 返回 int 1var_dump($redis -> rPush(‘favorite_fruit‘,‘banana‘));     // key 存在。但是 list 類型, 返回 int 2$redis -> set(‘pats‘,‘dog‘);var_dump($redis -> rPush(‘pats‘,‘cat‘));     // key 存在。但不是是 list 類型, 返回 boolean false

4、RPUSHX

  Redis Rpushx 命令用於將一個或多個值插入到已存在的列表尾部(最右邊)。如果列表不存在,操作無效。

文法:

redis 127.0.0.1:6379> RPUSHX KEY_NAME VALUE1..VALUEN

傳回值:執行 Rpushx 操作後,列表的長度。

可用版本: >= 2.2.0

時間複雜度:O(1)

具體執行個體:

<?php$redis = new redis();$redis -> connect(‘127.0.0.1‘,6379);$redis -> flushAll();var_dump($redis -> lPush(‘favorite_fruit‘,‘cherry‘));var_dump($redis -> lPush(‘favorite_fruit‘,‘banana‘));var_dump($redis -> rPushx(‘favorite_fruit‘,‘apple‘));     //  返回 int 3var_dump($redis -> lRange(‘favorite_fruit‘,0,-1));//  array (size=3)//      0 => string ‘banana‘ (length=6)//      1 => string ‘cherry‘ (length=6)//      2 => string ‘apple‘ (length=5)var_dump($redis -> rPushx(‘fake_key‘,‘invalid_val‘));     //  列表不存在時操作無效返回 int (0)

5、LPOP

   Redis Lpop 命令用於移除並返回列表的第一個元素。

文法:

redis 127.0.0.1:6379> LPOP KEY_NAME

傳回值:列表的第一個元素。 當列表 key 不存在時,返回 nil 。

可用版本:>= 1.0.0

時間複雜度:O(1)

具體執行個體:

<?php$redis = new redis();$redis -> connect(‘127.0.0.1‘,6379);$redis -> flushAll();var_dump($redis -> lPush(‘favorite_fruit‘,‘cherry‘));var_dump($redis -> lPush(‘favorite_fruit‘,‘banana‘));var_dump($redis -> lPush(‘favorite_fruit‘,‘apple‘));var_dump($redis -> lPop(‘favorite_fruit‘));             // string applevar_dump($redis -> lRange(‘favorite_fruit‘,0,-1));//  array (size=2)//      0 => string ‘banana‘ (length=6)//      1 => string ‘cherry‘ (length=6)

 

redis 在 php 中的應用(List篇)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.