ホームページ バックエンド開発 PHPチュートリアル 30 php 操作 redis の一般的なメソッドのコード例

30 php 操作 redis の一般的なメソッドのコード例

Oct 14, 2019 pm 02:43 PM
redis

この記事では主に、PHP で Redis を操作するための一般的なメソッドのコード例を 30 個紹介します。実際には、文字列型、リスト型、セット型のデータを操作できるメソッドが 30 個以上あります。必要な友人は参照してください

Redis の操作は数多くありますが、個人的に一般的に使用されていると思われる PHP による Redis の処理例をいくつか紹介します。次の例はすべて php-redis 拡張機能に基づいています。

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

#パラメータ: ホスト: 文字列、ポート: int

戻り値: BOOL 成功した場合の戻り値: TRUE、失敗した場合の戻り値: FALSE

例:

connect('127.0.0.1', 6379); 
var_dump($result); //结果:bool(true) 
?>
ログイン後にコピー

2, set

説明: キーとセット値 Value

パラメータ: キー値

戻り値: BOOL 成功の戻り値: TRUE; 失敗の戻り値: FALSE

例:

connect('127.0.0.1', 6379); 
$result = $redis->set('test',"11111111111"); 
var_dump($result);    //结果:bool(true) 
?>
ログイン後にコピー

3 、get

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

パラメータ: key

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

例:

connect('127.0.0.1', 6379); 
$result = $redis->get('test'); 
var_dump($result);   //结果:string(11) "11111111111" 
?>
ログイン後にコピー

4,delete

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

パラメータ: キー、または未定義の数値パラメータの配列、各キーの配列: key1 key2 key3 ... keyN

戻り値: 削除された項目の数

例:

connect('127.0.0.1', 6379); 
$redis->set('test',"1111111111111"); 
echo $redis->get('test');   //结果:1111111111111 
$redis->delete('test'); 
var_dump($redis->get('test'));  //结果:bool(false) 
?>
ログイン後にコピー

5,setnx

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

パラメーター: キー値

戻り値: BOOL 正常な戻り値: TRUE;失敗時の戻り値:FALSE

例:

connect('127.0.0.1', 6379); 
$redis->set('test',"1111111111111"); 
$redis->setnx('test',"22222222"); 
echo $redis->get('test');  //结果:1111111111111 
$redis->delete('test'); 
$redis->setnx('test',"22222222"); 
echo $redis->get('test');  //结果:22222222 
?>
ログイン後にコピー

6,exists

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

パラメータ キー

戻り値: Bool 成功した場合の戻り値: TRUE; 失敗した場合の戻り値: FALSE

例:

connect('127.0.0.1', 6379); 
$redis->set('test',"1111111111111"); 
var_dump($redis->exists('test'));  //结果:bool(true) 
?>
ログイン後にコピー

7, incr

# 説明: 数値増分ストレージ キー。
パラメータ: キー値: キーに追加される値

戻り値: INT 新しい値

インスタンス:

connect('127.0.0.1', 6379); 
$redis->set('test',"123"); 
var_dump($redis->incr("test"));  //结果:int(124) 
var_dump($redis->incr("test"));  //结果:int(125) 
?>
ログイン後にコピー

8, decr

説明: キー値は降順で数値的に格納されます。 パラメータ: キー値: キーに追加される値

戻り値: INT 新しい値

インスタンス:

connect('127.0.0.1', 6379); 
$redis->set('test',"123"); 
var_dump($redis->decr("test"));  //结果:int(122) 
var_dump($redis->decr("test"));  //结果:int(121) 
?>
ログイン後にコピー

9 、getMultiple

説明: 指定されたすべてのキーの値を取得します。 1 つ以上のキーが存在しない場合、この配列内のそのキーの値は false になります。 パラメータ: キー値を含むリストの配列

戻り値: を含む配列を返します。すべてのキーの値

例:

connect('127.0.0.1', 6379); 
$redis->set('test1',"1"); 
$redis->set('test2',"2"); 
$result = $redis->getMultiple(array('test1','test2')); 
print_r($result);   //结果:Array ( [0] => 1 [1] => 2 ) 
?>
ログイン後にコピー

10, lpush

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

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

インスタンス:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
var_dump($redis->lpush("test","111"));   //结果:int(1) 
var_dump($redis->lpush("test","222"));   //结果:int(2) 
?>
ログイン後にコピー

11, rpush

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

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

例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
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

説明: リストの最初の要素を返して削除しますパラメータ: key

戻り値: 最初の要素を正常に返します値、失敗した場合は false

を返します。例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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, lsize,llen

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

戻り値: 成功した場合は配列の長さを返し、失敗した場合は false

#例:

#
connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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 最初の要素、1 秒目... -1 最後の要素、-2 最後から 2 番目... 間違ったインデックスまたはキーがリストを指していない場合は FALSE を返します。

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

例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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

#例:

#

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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 最初の要素、1 2 番目の要素... -1 最後の要素、-2 最後から 2 番目の要素...

パラメータ: key start end

戻り値: 値を正常に返します。 found 、failed false

例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->lpush("test","111"); 
$redis->lpush("test","222"); 
print_r($redis->lgetrange("test",0,-1));  //结果:Array ( [0] => 222 [1] => 111 ) 
?>
ログイン後にコピー

17,lremove

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

パラメータ: キーカウント値

戻り値: 成功した場合は削除されたアイテムの数を返し、失敗した場合は false を返します

例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->lpush('test','a'); 
$redis->lpush('test','b'); 
$redis->lpush('test','c'); 
$redis->rpush('test','a'); 
print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a ) 
var_dump($redis->lremove('test','a',2));   //结果:int(2) 
print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b ) 
?>
ログイン後にコピー

18,sadd

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

パラメータ: キー値

戻り値: 成功した場合は true、失敗した場合は false

例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
var_dump($redis->sadd('test','111'));   //结果:bool(true) 
var_dump($redis->sadd('test','333'));   //结果:bool(true) 
print_r($redis->sort('test')); //结果:Array ( [0] => 111 [1] => 333 ) 
?>
ログイン後にコピー

19 ,s削除

#

描述:删除Key中指定的value值

参数:key member

返回值:true or false

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->sadd('test','111'); 
$redis->sadd('test','333'); 
$redis->sremove('test','111'); 
print_r($redis->sort('test'));    //结果:Array ( [0] => 333 ) 
?>
ログイン後にコピー

20,smove

描述:将Key1中的value移动到Key2中

参数:srcKey dstKey member

返回值:true or false

范例

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->delete('test1'); 
$redis->sadd('test','111'); 
$redis->sadd('test','333'); 
$redis->sadd('test1','222'); 
$redis->sadd('test1','444'); 
$redis->smove('test',"test1",'111'); 
print_r($redis->sort('test1'));    //结果:Array ( [0] => 111 [1] => 222 [2] => 444 ) 
?>
ログイン後にコピー

21,scontains

描述:检查集合中是否存在指定的值。

参数:key value

返回值:true or false

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->sadd('test','111'); 
$redis->sadd('test','112'); 
$redis->sadd('test','113'); 
var_dump($redis->scontains('test', '111')); //结果:bool(true) 
?>
ログイン後にコピー

22,ssize

描述:返回集合中存储值的数量

参数:key

返回值:成功返回数组个数,失败0

范例:

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

23,spop

描述:随机移除并返回key中的一个值

参数:key

返回值:成功返回删除的值,失败false

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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

范例:

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

26,sunion

描述:

返回一个所有指定键的并集

参数:

Keys: key1, key2, … , keyN

返回值:成功返回合并后的集,失败false

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$redis->sadd("test","111"); 
$redis->sadd("test","222"); 
$redis->sadd("test","333"); 
$redis->sadd("test1","111"); 
$redis->sadd("test1","444"); 
var_dump($redis->sinterstore('new',"test","test1"));  //结果:int(4) 
print_r($redis->smembers('new'));  //结果: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

范例:

connect('127.0.0.1', 6379); 
$redis->delete('test'); 
$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

范例:

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

30,smembers, sgetmembers

描述:

返回集合的内容

参数:Key: key

返回值:An array of elements, the contents of the set.

范例:

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

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

更多PHP相关知识,请访问PHP中文网

以上が30 php 操作 redis の一般的なメソッドのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Centos RedisでLUAスクリプト実行時間を構成する方法 Centos RedisでLUAスクリプト実行時間を構成する方法 Apr 14, 2025 pm 02:12 PM

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Redisコマンドラインの使用方法 Redisコマンドラインの使用方法 Apr 10, 2025 pm 10:18 PM

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisカウンターを実装する方法 Redisカウンターを実装する方法 Apr 10, 2025 pm 10:21 PM

Redisカウンターは、R​​edisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisの有効期限ポリシーを設定する方法 Redisの有効期限ポリシーを設定する方法 Apr 10, 2025 pm 10:03 PM

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

Debian Readdirのパフォーマンスを最適化する方法 Debian Readdirのパフォーマンスを最適化する方法 Apr 13, 2025 am 08:48 AM

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする

See all articles