ホームページ > バックエンド開発 > PHPチュートリアル > Redisを操作するPHPの一般的な操作方法のコード概要

Redisを操作するPHPの一般的な操作方法のコード概要

WBOY
リリース: 2016-06-20 13:03:18
オリジナル
838 人が閲覧しました


この記事では、PHP で Redis を操作するための一般的なメソッドのコード例を中心に紹介します。文字列型、リスト型、セット型のデータを操作できます。必要な方は参考にしてください。

以下は、redis を処理する php の phpredis 拡張機能の例です。

1、接続

説明: インスタンスは Redis に接続されています。

パラメータ: ホスト: 文字列、ポート: int
戻り値: BOOL 成功した場合: TRUE; 失敗した場合: FALSE

< ?php 
$redis = new redis(); 
$result = $redis->connect(&#39;127.0.0.1&#39;, 6379); 
var_dump($result); //结果:bool(true) 
?> 
ログイン後にコピー
2、セット

説明: キーと値の値を設定します

パラメータ: キー値
戻り値: BOOL 成功した場合: TRUE; 失敗した場合: FALSE

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$result = $redis->set(&#39;test&#39;,"11111111111"); 
var_dump($result);    //结果:bool(true) 
?> 
ログイン後にコピー
3、入手

説明: 指定されたキーの値を取得します

パラメータ: キー
戻り値: 文字列または BOOL キーが存在しない場合は、FALSE を返します。それ以外の場合は、指定されたキーに対応する値を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$result = $redis->get(&#39;test&#39;); 
var_dump($result);   //结果:string(11) "11111111111" 
?> 
ログイン後にコピー
4、削除

説明: 指定されたキーを削除します

パラメータ: キー、または不特定数のパラメータ、各キーの配列: key1 key2 key3 … keyN
戻り値: 削除されたアイテムの数

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test&#39;,"1111111111111"); 
echo $redis->get(&#39;test&#39;);   //结果:1111111111111 
$redis->delete(&#39;test&#39;); 
var_dump($redis->get(&#39;test&#39;));  //结果:bool(false) 
?> 
ログイン後にコピー
5,setnx

説明: キーがデータベースに存在しない場合は、キー値パラメータ

を設定します。 パラメータ: キー値
戻り値: BOOL 成功した場合: TRUE; 失敗した場合: FALSE

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test&#39;,"1111111111111"); 
$redis->setnx(&#39;test&#39;,"22222222"); 
echo $redis->get(&#39;test&#39;);  //结果:1111111111111 
$redis->delete(&#39;test&#39;); 
$redis->setnx(&#39;test&#39;,"22222222"); 
echo $redis->get(&#39;test&#39;);  //结果:22222222 
?> 
ログイン後にコピー
6、存在します

説明: 指定されたキーが存在することを確認します

パラメータキー
戻り値: Bool 成功した場合: TRUE、失敗した場合: FALSE

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test&#39;,"1111111111111"); 
var_dump($redis->exists(&#39;test&#39;));  //结果:bool(true) 
?> 
ログイン後にコピー
7,増分

説明: 格納されたキー値のキーを数値的に増加させます。

パラメータ: key value: キー
に追加される値 戻り値: INT 新しい値

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test&#39;,"123"); 
var_dump($redis->incr("test"));  //结果:int(124) 
var_dump($redis->incr("test"));  //结果:int(125) 
?>
 
ログイン後にコピー
8、10 月

説明: キー値を数値デクリメントで保存します。

パラメータ: key value: キー
に追加される値 戻り値: INT 新しい値

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test&#39;,"123"); 
var_dump($redis->decr("test"));  //结果:int(122) 
var_dump($redis->decr("test"));  //结果:int(121) 
?>
ログイン後にコピー
9,getMultiple

説明: 指定されたすべてのキーの値を取得します。 1 つ以上のキーが存在しない場合、この配列内のそのキーの値は false

パラメータ: キー値を含むリスト
の配列 戻り値: すべてのキーの値を含む配列を返します

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->set(&#39;test1&#39;,"1"); 
$redis->set(&#39;test2&#39;,"2"); 
$result = $redis->getMultiple(array(&#39;test1&#39;,&#39;test2&#39;)); 
print_r($result);   //结果:Array ( [0] => 1 [1] => 2 ) 
?>
ログイン後にコピー
10、ルプシュ

説明: リストの先頭から文字列値を追加します。キーが存在しない場合はリストを作成します。キーが存在するがリストではない場合は、FALSE を返します。

パラメータ: キー、値
戻り値: 成功した場合は配列の長さを返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
var_dump($redis->lpush("test","111"));   //结果:int(1) 
var_dump($redis->lpush("test","222"));   //结果:int(2) 
?>
ログイン後にコピー
11、rpush

説明: リストの末尾から文字列値を追加します。キーが存在しない場合はリストを作成します。キーが存在するがリストではない場合は、FALSE を返します。

パラメータ: キー、値
戻り値: 成功した場合は配列の長さを返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
var_dump($redis->lpush("test","111"));   //结果:int(1) 
var_dump($redis->lpush("test","222"));   //结果:int(2) 
var_dump($redis->rpush("test","333"));   //结果:int(3) 
var_dump($redis->rpush("test","444"));   //结果:int(4) 
?>
ログイン後にコピー
12,lpop

説明: リストの最初の要素を返し、削除します

パラメータ: キー
戻り値: 成功した場合は最初の要素の値を返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
$redis->rpush("test","333"); 
$redis->rpush("test","444"); 
var_dump($redis->lpop("test"));  //结果:string(3) "222" 
?>
ログイン後にコピー
13、lサイズ、レン

説明: 返されるリストの長さ。リストが存在しないか空の場合、コマンドは 0 を返します。キーがリストでない場合、このコマンドは FALSE を返します。

パラメータ: キー
戻り値: 成功した場合は配列の長さを返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
$redis->rpush("test","333"); 
$redis->rpush("test","444"); 
var_dump($redis->lsize("test"));  //结果:int(4) 
?>
ログイン後にコピー
14,lget

説明: 指定されたキーを持つリストに格納されている指定された要素を返します。最初の要素は 0、2 番目は 1... 最後の要素は -1、最後から 2 番目の要素は -2... 間違ったインデックスまたはキーがリストを指していない場合は FALSE を返します。

パラメータ: キーインデックス
戻り値: 成功した場合は指定された要素の値を返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
$redis->rpush("test","333"); 
$redis->rpush("test","444"); 
var_dump($redis->lget("test",3));  //结果:string(3) "444" 
?>
ログイン後にコピー
15,lset

説明: リストで指定されたインデックスに新しい値を割り当てます。インデックスが存在しない場合は、false を返します。

パラメータ: キーインデックス値
戻り値: 成功した場合は true、失敗した場合は false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
var_dump($redis->lget("test",1));  //结果:string(3) "111" 
var_dump($redis->lset("test",1,"333"));  //结果:bool(true) 
var_dump($redis->lget("test",1));  //结果:string(3) "333" 
?>
ログイン後にコピー


16,lgetrange

説明:

範囲内の指定されたキーのリストに最初から最後まで格納されている指定された要素を返します、lGetRange(key, start, end)。最初の要素は 0、2 番目の要素は 1...最後の要素は -1、最後から 2 番目の要素は -2...
パラメータ: キー開始終了
戻り値: 成功した場合は見つかった値を返し、失敗した場合は false
を返します。

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
print_r($redis->lgetrange("test",0,-1));  //结果:Array ( [0] => 222 [1] => 111 ) 
?>
 
ログイン後にコピー
17,l削除

説明: count に一致する値をリストの先頭から削除します。 count が 0 の場合、一致する要素はすべて削除されます。 count が負の場合、コンテンツは最後から削除されます。

パラメータ: キーカウント値
戻り値: 成功した場合は削除されたアイテムの数を返し、失敗した場合は false を返します

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->lpush(&#39;test&#39;,&#39;a&#39;); 
$redis->lpush(&#39;test&#39;,&#39;b&#39;); 
$redis->lpush(&#39;test&#39;,&#39;c&#39;); 
$redis->rpush(&#39;test&#39;,&#39;a&#39;); 
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a ) 
var_dump($redis->lremove(&#39;test&#39;,&#39;a&#39;,2));   //结果:int(2) 
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b ) 
?>
ログイン後にコピー
18、悲しい

説明: キーに値を追加します。この値がすでにこのキーに含まれている場合は、FALSE を返します。

パラメータ: キー値
戻り値: 成功した場合は true、失敗した場合は false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
var_dump($redis->sadd(&#39;test&#39;,&#39;111&#39;));   //结果:bool(true) 
var_dump($redis->sadd(&#39;test&#39;,&#39;333&#39;));   //结果:bool(true) 
print_r($redis->sort(&#39;test&#39;)); //结果:Array ( [0] => 111 [1] => 333 ) 
?>
ログイン後にコピー
19、削除

説明: Key

で指定した値を削除します。 パラメータ: キーメンバー
戻り値: true または false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd(&#39;test&#39;,&#39;111&#39;); 
$redis->sadd(&#39;test&#39;,&#39;333&#39;); 
$redis->sremove(&#39;test&#39;,&#39;111&#39;); 
print_r($redis->sort(&#39;test&#39;));    //结果:Array ( [0] => 333 ) 
?>
ログイン後にコピー
20、移動

説明: Key1 の値を Key2 に移動します

パラメータ: srcKey dstKey メンバー
戻り値: true または false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->delete(&#39;test1&#39;); 
$redis->sadd(&#39;test&#39;,&#39;111&#39;); 
$redis->sadd(&#39;test&#39;,&#39;333&#39;); 
$redis->sadd(&#39;test1&#39;,&#39;222&#39;); 
$redis->sadd(&#39;test1&#39;,&#39;444&#39;); 
$redis->smove(&#39;test&#39;,"test1",&#39;111&#39;); 
print_r($redis->sort(&#39;test1&#39;));    //结果:Array ( [0] => 111 [1] => 222 [2] => 444 ) 
?>
ログイン後にコピー
21、を含む

説明: 指定された値がコレクションに存在するかどうかを確認します。

パラメータ: キー値
戻り値: true または false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd(&#39;test&#39;,&#39;111&#39;); 
$redis->sadd(&#39;test&#39;,&#39;112&#39;); 
$redis->sadd(&#39;test&#39;,&#39;113&#39;); 
var_dump($redis->scontains(&#39;test&#39;, &#39;111&#39;)); //结果:bool(true) 
?>
ログイン後にコピー
22、サイズ

説明: コレクションに格納されている値の数を返します

パラメータ: キー
戻り値: 成功した場合は配列の数が返され、失敗した場合は 0 が返されます

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd(&#39;test&#39;,&#39;111&#39;); 
$redis->sadd(&#39;test&#39;,&#39;112&#39;); 
echo $redis->ssize(&#39;test&#39;);   //结果:2 
?>
ログイン後にコピー

23,spop

描述:随机移除并返回key中的一个值
参数:key
返回值:成功返回删除的值,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
var_dump($redis->spop("test"));  //结果:string(3) "333" 
?>
ログイン後にコピー

24,sinter

描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。
参数:key1, key2, keyN
返回值:成功返回数组交集,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
var_dump($redis->sinter("test","test1"));  //结果:array(1) { [0]=> string(3) "111" } 
?>
ログイン後にコピー

25,sinterstore

描述:执行sInter命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1"));  //结果:int(1) 
var_dump($redis->smembers(&#39;new&#39;));  //结果:array(1) { [0]=> string(3) "111" } 
?>
 
ログイン後にコピー

26,sunion

描述:
返回一个所有指定键的并集
参数:
Keys: key1, key2, … , keyN
返回值:成功返回合并后的集,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
print_r($redis->sunion("test","test1"));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 ) 
?>
ログイン後にコピー

27,sunionstore

描述:执行sunion命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1"));  //结果:int(4) 
print_r($redis->smembers(&#39;new&#39;));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 ) 
?>
ログイン後にコピー

28,sdiff

描述:返回第一个集合中存在并在其他所有集合中不存在的结果
参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:成功返回数组,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
print_r($redis->sdiff("test","test1"));  //结果:Array ( [0] => 222 [1] => 333 ) 
?>
ログイン後にコピー

29,sdiffstore

描述:执行sdiff命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis
返回值:成功返回数字,失败false

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
var_dump($redis->sdiffstore(&#39;new&#39;,"test","test1"));  //结果:int(2) 
print_r($redis->smembers(&#39;new&#39;));  //结果:Array ( [0] => 222 [1] => 333 ) 
?>
ログイン後にコピー

30,smembers, sgetmembers

描述:
返回集合的内容
参数:Key: key
返回值:An array of elements, the contents of the set.

< ?php 
$redis = new redis(); 
$redis->connect(&#39;127.0.0.1&#39;, 6379); 
$redis->delete(&#39;test&#39;); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
print_r($redis->smembers(&#39;test&#39;));  //结果:Array ( [0] => 111 [1] => 222 ) 
?>
ログイン後にコピー

31,setex,ttl

描述:
setex设置key,value的过期时间

ttl返回某key的过期剩余时间

$redis->setex("test",20,"value"); //设置key为test,value为value的过期时间为20秒
echo $redis->get("test");
echo $redis->ttl("test"); //返回剩余过期时间(已过期返回-2,无过期时间返回-1)
ログイン後にコピー

php-redis当中,有很多不同名字,但是功能一样的函数,例如:lrem和lremove,这里就不例举了。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート