PHP-redis中国語ドキュメント紹介_PHPチュートリアル
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系
很有用;以下是redis官方提供的命令使用技巧:
下载地址如下:
https://github.com/owlient/phpredis (redis 2.0.4 をサポート)
Redis::__constructConstructor
$redis = new Redis();
connect, open Redis サービスをリンク
パラメータ
host: 文字列、サービスアドレス
port: int、ポート番号
timeout: float、リンク期間(オプション、デフォルトは0、リンク時間に制限なし)
注: redis.confにも時間があります、デフォルトは300です
pconnect、popen 自動的に閉じられないリンク
上記参照
setOption redisモードを設定します
getOption モードセットを表示しますby redis
ping 接続状況を確認する
get 特定のキーの値(文字列値)を取得する
キーが存在しない場合はfalseを返す
set キーと値を書き込む( string value)
書き込みが成功したら、return ture
setex 生存時間付きの値を書き込む
$redis->setex('key', 3600, 'value') // キー→値を設定、 1h TTL.
setnx 重複しているかどうかを判断し、値を書き込む
$redis->setnx('key', 'value');
$redis->setnx('key', 'value' );
delete 指定された key の値を削除します
削除されたキーの数 (long 整数) を返します
$redis->delete('key1', 'key2');
$redis->delete( array('key3', 'key4', 'key5'));
ttl
キーの有効期限を取得します
persist
有効期限が切れたキーを削除します
キーの有効期限が切れた場合 true if有効期限はありません false
mset (redis バージョン 1.1 以降でのみ利用可能)
同時に複数のキーに値を割り当てます
$redis->mset(array('key0' => 'value0 ', 'key1' => 'value1'));
multi、exec、discardトランザクションモードを開始または終了します
パラメータはRedis::MULTI
またはRedis::PIPELINEです。 Redis::MULTIですRedis::MULTI: 複数の操作を1つのトランザクションとして実行します
Redis::PIPELINE: (複数の) 実行コマンドをサーバーに簡単かつ高速に送信できますが、原子性の保証はありません
discard: トランザクションを削除します
戻り値
multi()、redis オブジェクトを返し、マルチモード モードに入ります。マルチモード モードに入ると、後で呼び出されるすべてのメソッドは、exec() メソッドが呼び出されるまで同じオブジェクトを返します。
watch、unwatch (コードをテストした後、前述の効果は達成できません) キーの値が他のプログラムによって変更されているかどうかを監視します。このキーが watch と exec (メソッド) の間で変更されると、この MULTI/EXEC トランザクションの実行は失敗します (false を返します)
unwatch このプログラムによって監視されているすべてのキーをキャンセルします
パラメータ、キーのペアのリスト
$redis- > ;watch('x');
$ret = $redis->multi() ->incr('x') ->exec();
subscribe
* メソッドのコールバック。この方法は将来変更される可能性があることに注意してください
publish *コンテンツを特定のチャンネルに公開します。このメソッドは、キーが存在するかどうかを判断するために将来変更される可能性があることに注意してください
exists。true で false でない場合
incr、incrBy
key の値は 1 ずつ増加します。 2 番目のパラメーターが入力されている場合は、2 番目のパラメーターに入力された値だけ増加します
$redis ->incr( 'key1');
$redis->incrBy('key1', 10);
decr, decrBy
は減算を行い、使用方法はincr
と同じですget複数キー配列で構成されるパラメータを渡す
パラメータを返す
キーが存在する場合は値を返し、存在しない場合はfalseを返す
$redis->set('key1', 'value1'); 'key2', 'value2'); $redis ->set('key3', 'value3'); $redis->getMultiple(array('key1', 'key2', 'key3'));
$ redis->lRem('key1', ' A', 2);
$redis->lRange('key1', 0, -1);
list関連操作
lPush
$redis- >lPush(key, value);
要素を追加します rPush$redis-& gt;rPush(key , value); を追加します要素
lPushx/をkey
という名前の
listの右側(最後)にrPushx $redis->lPushx(key, value);の値を追加します値keyという名前のlistの左(頭)/右(尾)に
要素、値が既に存在する場合は追加されません
lPop/
rPop
$redis->lPop('key');keyという名前でlistを出力します 左から始まる最初の要素(先頭)/右から始まる(末尾) 、要素を削除します
blPop/brPop
$redis->blPop('key1', 'key2', 10) ; lpop
コマンドの
blockバージョン。つまり、timeoutが0の場合、key
i
という名前のlistリストが存在しないか、リスト が空です、コマンドは終了します。 timeout>0の場合、上記の状況が発生した場合は、timeout秒間待ってください。問題が解決しない場合は、keyi+1のリストを開始します。 pop操作を実行しますlSize$redis->lSize('key');keyという名前のリストに含まれる要素数を返しますlIndex, lGet $ redis->lGet('key', 0);要素を返しますlSet$redis->lSet('Key', 0, 'x'); Key list
という名前の
index
位置の要素は
value
lrange, LGETRANGE $redis->lRange('key1', 0, -1 );keyという名前のlistのstart
から
end
の間の要素を返します(endは-1、すべてを返します)
lTrim, listトリム $redis->lTrim('key', start, end);key list
という名前の
をインターセプトし、
start
からendまでの間の要素を保持します lRem, lRemove$redis->lRem('key', 'A', 2);リスト内のkeyという名前の
count
要素を削除します
その中央値は value です。countは0、値valueを持つすべての要素を削除、count>0値valueを持つ要素を削除します最初から最後まで要素、 count値valueを持つ|count|要素を端から端まで削除しますlInsert
keyという名前のリストで、値
pivotを見つけますですRedis::BEFORE | Redis::AFTER パラメーターに従って決定されます。新しい値はピボットの前または後に配置されます。キーが存在しない場合、ピボットは挿入されません。 return -1
$redis->delete('key1'); $redis->lInsert('key1', Redis:: AFTER, 'A', 'X'); $redis->lPush('key1', 'A'); $redis->lPush('key1', 'B'); 'key1', 'C '); $redis->lInsert('key1', Redis::BEFORE, 'C', 'X');
$redis->lRange('key1', 0, -1 );
$redis- >lInsert('key1', Redis::AFTER, 'C', 'Y');
$redis->lRange('key1', 0, -1);
$redis- >lInsert('key1 ', Redis::AFTER, 'W', 'value');
rpoplpush
srckeyという名前のlistの末尾要素を返して削除し、それを追加します要素を名前 Header に追加します $redis->delete('x', 'y');$redis->lPush('x', 'abc'); , 'def'); $redis->lPush('y', '123'); $redis->lPush('y', '456'); // x の最後を y の前に移動します。 . var_dump($redis->rpoplpush('x', 'y'));var_dump($redis->lRange('x', 0, -1)) ;var_dump($redis->lRange ('y', 0, -1)); string(3) "abc"
array(1) { [0]=> string(3 ) "def" }
array( 3) { [0]=> 文字列(3) "abc" [1]=> 文字列(3) "456" [2]=> 文字列(3) "123" }
SET操作関連
sAdd
keyという名前のsetに要素の値を追加します。値が存在する場合は書き込まず、falseを返します
$redis-> ;sAdd (key, value);
sRem, sRemove
要素を削除しますvalue$redis->sAdd('key1' , 'set1');$redis->sAdd('key1' , 'set2');$redis->sAdd('key1' , 'set3');$redis->sRem('key1' , 'set2');sMove
を移動します
srckey
という名前のセットから
dstkey$redis->sMove( seckey, dstkey, value);sIsMember, sContainsという名前のセットへのvalue要素
keyという名前のコレクションにvalue要素があるかどうかを調べます。trueがある場合、falseはありません
$redis->sIsMember(key, value );sCard, sSizeReturns
key
という名前のset
の数setsRandMembersetの要素をランダムに返します
という名前の
キー
削除せずに sInter 交差点を探索
sInterStore
交差点を見つけて
output$redis->sInterStore('output '、'キー1 ', 'key2', 'key3')sUnionunion
$redis->sUnion('s0', 's1', 's2');
s0,s1,s2 を設定し、同時にユニオン
sUnionStore
ユニオンを見つけて
出力のセット
$redis->sUnionStore('output', 'key1', 'key2', 'key3' );sDiff
差分セットを見つける
sDiffStore
差分セットを見つけるunion 差分セットをoutput
のセットに保存する
sMembers, sGetMembers
すべての要素を返します
key
sort、pagingなどの名前を持つset
パラメータ
'by' => 'some_pattern_*','limit' => array(0, 1),
'get' => 'some_other_pattern_*' またはパターンの配列、'sort' = > 'asc' または 'desc'、'alpha' => 'external-key'例
$redis->delete('s'); $redis->sadd('s', 5); $redis->sadd('s); ', 2); $redis->sadd('s', 1); $redis->sadd('s', 3);
var_dump($redis->sort('s'); / 1,2,3,4,5var_dump($redis ->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1 var_dump($redis->sort('s', array ('sort' => 'desc', 'store' => 'out')));コマンド
getSetは元のキーの値を返し、キーに値を書き込みます$redis->set('x', '42');$exValue = $redis->getSet(' x', 'lol'); // '42' を返し、x を 'lol' に置き換えます$newValue = $redis->get('x')' // 'lol' を返す
append
string , 名前は
key
string
値の後に value
$redis->set('key', 'value1');$redis->append('key', 'value2');
$redis->get( 'key');
getRange
(メソッドが存在しません)
の
start から
end までの文字
を返します。
という名前の
key$redis->set('key', 'string value');
$redis->getRange('key', 0, 5);$redis->getRange ('key', -5, -1); setRange (メソッドが存在しません) keyの文字列の文字を
start
から
end
に変更しますvalue$redis->set('key' , 'Hello world');$redis->setRange('key', 6, "redis");$redis->get('key' );strlen
keyの文字列の長さを取得
$redis->strlen('key');
getBit/setBit
バイナリ情報を返す
zset(ソートセット)操作関連
zAdd (キー、スコア、メンバー):追加要素 member を zset にkey、score という名前で並べ替えます。要素が既に存在する場合は、scoreに基づいて要素の順序を更新します。
$redis->zAdd('key', 1, 'val1');
$redis->zAdd('key', 0, 'val0');
$redis->zAdd('key' , 5, 'val5');
$redis->zRange('key', 0, -1); // array(val0, val1, val5)
zRange(key, start, end); ,withscores): keyという名前のzsetのを返します(要素はscoreによってソートされています)小から大まで) インデックス from startからend
までのすべての要素$redis->zAdd('key1', 0, 'val0');
$redis->zAdd('key1', 2, ' val2 ');
$redis->zAdd('key1', 10, 'val10');
$redis->zRange('key1', 0, -1); // スコア付き $redis-> zRange ('key1', 0, -1, true);
zDelete, zRem
zRem(key, member): keyという名前のを削除します zset の要素member
$redis->zAdd('key', 0, 'val0');
$redis->zAdd('key', 2, 'val2');
$ redis ->zAdd('key', 10, 'val10');
$redis->zDelete('key', 'val2');
$redis->zRange('key', 0, -1 ;
(要素が押されました
startからendまでのindexのすべての要素.withscores redis->zAdd('key', 'val0'); $redis->zAdd('key', 2, 'val2');$redis->zAdd('key', 10, 'val10');$redis->zRevRange('key', 0 , -1); // スコア付き $redis->zRevRange('key', 0, -1, true);zRangeByScore , zRevRangeByScore$redis->zRangeByScore(key, star, end, array (スコア付き、制限));は、keyscore >= star すべての要素zCount$redis->を含む
zset
を返します;zCount(キー、star、end);
key
という名前の
zset を返します score >= star および score zRemRangeByScore, zDeleteRangeByScore$redis->zRemRange ByScore('key', star , end);
zsetのkeyという名前の要素をすべて削除しますスコアの> = star と score 、各 Count zSize、zCard
を返し、
zsetという名前のすべての要素の数を返します
key zScore$redis->zScore(key, val2) ; スコアを返しますzRank, zRevRank$redis->zRevRank(key, val);
return ランク
keyのval要素の(
index
)(要素は
score
でソートされています)、0Starからt)、もしあればval要素がない場合は、「null」を返します。zRevRank は大きいものから小さいものへと並べ替えられます
zIncrBy
$redis->zIncrBy('key', increment, 'member');
If zset という名前のkey If要素 member が にすでに存在する場合、要素の score は increment だけ増加します。それ以外の場合、要素はセットに追加され、その score の値は です。 increment
zUnion/zInter
Parameters
keyOutput
arrayZSetKeys
arrayWeights
aggregateFunction "SUM"、"MIN"、または "MAX" のいずれか: zUnion 中に重複エントリに使用する動作を定義します.
正しいNzsetは和集合と交差を見つけて、最終セットをdstkeyNに保存します。セット内の各要素について、AGGREGATE 操作を実行する前に、score に WEIGHT パラメータを乗算する必要があります。 WEIGHTが指定されていない場合、デフォルトの1が使用されます。デフォルトの AGGREGATE は SUM です。つまり、結果セット内の要素の score は、セット内のすべての対応する要素に対する SUM 演算の値です。 MIN と MAX は、結果セット内の要素の score が、すべてのセット内の対応する要素の最小値と最大値であることを意味します。
ハッシュオペレーション
hSet
$redis->hSet('h', 'key1', 'hello');
hという名前のハッシュに要素key1を追加します — >hello
hGet
$redis->hGet('h', 'key1');
hという名前のハッシュのkey1に対応するを返します値(hello)
hLen$redis->hLen('h');
hという名前のハッシュ内の要素の数
hDを返します $redis->hDel('h', 'key1');
hという名前のハッシュ内のドメインhKeysを削除します $redis->hKeys('h ');
すべてのキーを返します
hVals$redis->hVals('h') 値を返しますhGetAll
$redis->hGetAll( 「は」 );
は、
値
を返します。 $redis->hExists(' h', 'a');name ドメインはありますか hIncrBy
$redis->hIncrBy('h', 'x', 2);a
ハッシュ の h に 22
hMset
$redis->hM set('user:1', array('name' => 'Joe', ') を追加します。給与' => 2000));
keyという名前のハッシュに要素hMGet
$をバッチ追加します redis->hmGet('h', array('field1' , 'field2'));
は、
h
という名前のハッシュのfield1、field2に対応するを返しますredis操作関連 フラッシュDB
現在のデータベースをクリアします
flushAll
すべてのデータベースをクリアしますrandomKeyランダムリターン
key
スペースの
キー
$key = >ランダムキー(); selectデータベースを選択moveキーを別のデータベースに転送$redis->select(0) // DB 0に切り替える$redis->set('x', ' 42'); // x$redis->move('x', 1) // DB 1 に移動$redis->select(1); // DB 1 に切り替えるredis->get('x'); // 42 を返します
rename, renameKey
キーの名前を変更します$redis->set ('x', '42');$redis-> rename('x', 'y');$redis->get('y'); // → 42
$redis-> // → `FALSE`
; renameNx
はremaneに似ていますが、名前変更された名前が既に存在する場合、正常に置き換えられません
setTimeout、expire
set a key
active time (s)$ redis->setTimeout('x', 3);
expireAt
key は Unix タイムスタンプ時間まで存続します$redis->expireAt('x', time() + 3);
keys, getKeys
すべてを返します
key
$keyWithUserPrefix = $redis->keys('user *');
dbSize現在データベースにキーがいくつあるか確認してください
$count = $redis- >dbSize();
auth
パスワード認証
$redis->auth('foabared');
bgrewriteaof
データベースの永続化には aof を使用します$redis->bgrewriteaof();
slaveofスレーブサーバーを選択します$redis->slaveof('10.0.1.7', 6379); saveデータをディスクに同期的に保存します
bgsave
データをディスクに非同期で保存します
lastSave
最後のUnixタイムスタンプを返します
info
最後に成功したRedisバージョン情報とその他の詳細データをディスクに保存します
type
key
stringの型値を返します: Redis::REDIS_STRING
set: Redis::REDIS_SET
list: Redis::REDIS_LIST
zset: Redis::REDIS_ZSET
hash: Redis::REDIS_HASH
other : Redis::REDIS_NOT_FOUND

セッション固定攻撃を防ぐための効果的な方法には、次のものがあります。1。ユーザーがログインした後にセッションIDを再生します。 2。安全なセッションID生成アルゴリズムを使用します。 3。セッションタイムアウトメカニズムを実装します。 4。HTTPSを使用したセッションデータを暗号化します。これらの措置は、セッションの固定攻撃に直面するときにアプリケーションが破壊されないようにすることができます。

セッションのない認証の実装は、サーバー側のセッションストレージなしですべての必要な情報がトークンに保存されるトークンベースの認証システムであるJSonWebtokens(JWT)を使用することで実現できます。 1)JWTを使用してトークンを生成および検証する、2)トークンが傍受されるのを防ぐためにHTTPSが使用されることを確認する、3)クライアント側にトークンを安全に保存する、4)改ざんを防ぐためにサーバー側のトークンを検証する、5)短期アクセスや長期的なリフレイを使用するなどのトークンの取り消しメカニズムを実装する。

PHPセッションのセキュリティリスクには、主にセッションハイジャック、セッションの固定、セッション予測、およびセッション中毒が含まれます。 1。HTTPSを使用してCookieを保護することにより、セッションハイジャックを防ぐことができます。 2。ユーザーがログインする前にセッションIDを再生することにより、セッションの固定を回避できます。3。セッションの予測は、セッションIDのランダム性と予測不可能性を確保する必要があります。 4.セッションの中毒は、セッションデータを確認およびフィルタリングすることで防ぐことができます。

PHPセッションを破壊するには、最初にセッションを開始してから、データをクリアしてセッションファイルを破壊する必要があります。 1。Session_start()を使用してセッションを開始します。 2。Session_unset()を使用して、セッションデータをクリアします。 3.最後に、session_destroy()を使用してセッションファイルを破壊して、データのセキュリティとリソースのリリースを確保します。

PHPのデフォルトセッションの保存パスを変更する方法は?次の手順で達成できます。Session_save_path( '/var/www/sessions'); session_start(); PHPスクリプトで、セッション保存パスを設定します。 session.save_path = "/var/www/sessions"をphp.iniファイルに設定して、セッションの保存パスをグローバルに変更します。 memcachedまたはredisを使用して、ini_set( 'session.save_handler'、 'memcached')などのセッションデータを保存します。 ini_set(

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









