標籤:參數 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篇)