検索
ホームページバックエンド開発PHPチュートリアルRedis の使用に関する詳細なチュートリアル、redistutorial_PHP チュートリアル

Redis の使用に関する詳細なチュートリアル、redis チュートリアル

1. Redis の基本部分:

1. Redis の導入とインストールは mysql よりも 10 倍以上高速です

******************redis 該当する機会******************

1.最新のNデータを取得する操作

2.ランキングアプリ、TOPN獲得

3. 有効期限を正確に設定する必要があるアプリケーション

4.カウンターアプリケーション

5. 一定期間内の全データのリランキング値を取得するUniq操作

6. リアルタイム システム、スパム対策システム 7. Pub/Sub リアルタイム メッセージング システムを構築します

7.Pub/Sub リアルタイムメッセージングシステムを構築する 8.キューシステムを構築する

9.キャッシング

==============================================

SET 操作は 1 秒あたり 110,000 回実行され、GET 操作は 1 秒あたり 81,000 回実行され、サーバー構成は次のとおりです:

Linux 2.6、Xeon X3320 2.5Ghz。

stackoverflow Web サイトは、キャッシュ サーバーとして Redis を使用します。

同時にハードディスクにもデータが書き込まれます。したがって、データは安全です (突然の停電を除き、サービスの再起動は dump.rdb ファイルに書き込まれます)

1. インストール:

tar zxvf redis-2.6.9.tar.gz

cd redis-2.6.9

作る

cd src && make install

2. 設定ファイルの場所を移動します (管理を容易にするため)

cd /usr/local/

mkdir -p /usr/local/redis/bin

mkdir -p /usr/local/redis/etc

mv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etc

cd /lamp/redis-2.6.9/src

mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

3.設定ファイルを変更する

vi /usr/local/redis/etc/redis.conf

1. daemonize no の no を yes に変更します (yes はバックグラウンドでの実行を指します)

4. スタート/ランダムスタート:

cd /usr/local/redis/bin

./redis-server /usr/local/redis/etc/redis.conf#redisを起動し、設定ファイルを指定します。

#vi /etc/rc.local #ランダム起動を設定します。

/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

5. 起動が成功したかどうかを確認します

ps -ef redis

netstat -tunpl | grep 6379# ポートが占有されているかどうかを確認します。

6. クライアントの入力/終了

cd /usr/local/redis/bin

./redis-cli#Enter

やめる#やめる

7.redisを閉じる

pkill redis-server#Close

./redis-cli shutdown#Close

*************************************Redis セキュリティ*********** ******* *************************

Redisのセキュリティ???(以下の4つの方法による)

1. ACL でセキュリティを制御します。

2. 次の設定行を redis.conf 設定ファイルに追加して、redis を単一のインターフェイスにバインドします (ただし、このネットワーク カードからのデータを受け入れるだけではありません)。

127.0.0.1をバインド

3. Redis に長いパスワードを追加します (覚えておく必要はありません)

4. redis.conf 設定で認証機能を有効にします。

5.SSLプロキシ

6. 指定されたコマンドを無効にします。

***************************************** Redis 構成 ******* ** *************************************

daemonize バックグラウンドで実行する必要がある場合は、この項目を [はい] に変更します

pidfile 複数の PID のアドレスを設定します。デフォルトは /var/run/redis.pid です。

bind バインド IP、設定後、この IP からのリクエストのみを受け入れます

ポートリスニングポート、デフォルトは6379です

timeout クライアントが接続するときのタイムアウト時間を秒単位で設定します

ログレベルは、デバッグ、詳細、通知、警告の 4 つのレベルに分かれています

logfile ログファイルのアドレスを設定します

databases データベースの数を設定します。デフォルトのデータベースは 0 です。

save Redisによるデータベースミラーリングの頻度を設定します

rdbcompression イメージバックアップ時に圧縮を行うかどうか

Dbfilename イメージバックアップファイルのファイル名

Dir データベースミラーバックアップのファイル配置パス

Slaveof データベースを他のデータベースのスレーブデータベースとして設定します

Masterauth マスターデータベース接続にはパスワードの検証が必要です

Requirepass ログインに必要なパスワードを設定します

Maxclients 同時に接続するクライアントの数を制限します

Maxmemory は、Redis が使用できる最大メモリを設定します

Appendonly 追加のみモードをオンにします

以下のことが理解できます:

Appendfsync appendonly.aof ファイルの同期頻度を設定します

vm-enabled 仮想メモリのサポートを有効にするかどうか

vm-swap-file 仮想メモリのスワップファイルパスを設定します

vm-max-memory Redis が使用する最大物理メモリ サイズを設定します

vm-page-size 仮想メモリのページサイズを設定します

vm-pages スワップファイル内の総ページ数を設定します

vm-max-threads VM IO が同時に使用するスレッドの数を設定します

Glueoutputbuf は小さな出力バッファをまとめて保存します

hash-max-zipmap-entries ハッシュの臨界値を設定します

アクティブな再ハッシュ

************************************************ ***** ******************

5 つのデータ型: 文字列、ハッシュ、リンク リスト、セット、順序付きセット。

サポート: プッシュ/ポップ、追加/削除、交差、結合、差分、並べ替え。

redismysql

同時にハードディスクにもデータが書き込まれます。したがって、データは安全です (突然の停電を除き、サービスの再起動は dump.rdb ファイルに書き込まれます)

************************************************ ***** ******************

select num# はライブラリを選択します。デフォルトはライブラリ 0 で、合計 16 のライブラリがあります

auth liweijie# 承認されたユーザーに必要なパスワード (パスワードは redis.conf で設定されたパスワードです)

flushdb#データベースをクリアします。

文字列(文字列)型:

set name lijie#キー名の値を lijie に設定します

get name#nameの値を取得します。

keys *#すべてのキーをクエリします。

setnx name liweijie#キーがすでに存在する場合は、上書きを防ぐために 0 を返し、更新しません。

setex ヘアカラー 10 赤 #セットキーの値は10秒間有効です。

setrange email 6 Lampbre.com#置換キーの値を6文字目からlampbre.comに変更します

mset name1 Li Dawei name2 Li Xiaowei#複数のキーの値を設定します。

msetnxname1 Zhang San name3 Li Si# キーが存在するかどうかを判断し、存在しない場合は設定し、設定されていない場合は 0 を返します

mget name1 name2 name3#複数のキーの値を一度に取得します。

getset name1 Tom#キーの値をリセットし、古いキーの値を返します。

getrange email 6 18# 電子メール キーの 6 文字目から 18 文字目までの値をインターセプトします。

incr uid#は毎回1ずつインクリメントします(キー内のuidが存在しない場合は、それを設定して0から開始します。以下同様)

incrby uid 5#は毎回5ずつ増加します

incrby uid -5# は毎回 5 ずつ減少します

decr uid #毎回1ずつ減少します

decrby uid 5#は毎回5ずつ減少します

appendname1 @126.com#name1 の値に文字列 @126.com を追加します

strlenname1#キーname1の値の長さを返します。

************************************************ ***** ************************

ハッシュ (ハッシュ) タイプ:

hset user:001 name liweijie#Hash は、ユーザー user:001 の名前キー値を liweijie に設定します

hset user:001 age 21#同様に、年齢キー値 21 を追加します

hsetnx user:001 age 22# 上記と同じですが、キーが存在するかどうかを検出します。存在しない場合は作成します。

hmset user:002 name liweijie2 age 26 sex 1#複数のキーの値を同時に設定します。

hget user:001 name#Hash は、ユーザー user:001 の名前キーの値を取得します。

hget user:001 age #同上。

hmget user:001 name age sex#指定した複数のキーの値を取得します。

hgetall user:001#すべてのキーの値を取得します。

hincrbyuser:001 age -8#指定された値を指定されたキーに追加します。

hexists user:001 sex#指定されたキー値が存在するかどうかを確認します。

hlen user:001#指定されたハッシュのキー/フィールドの数を返します。

hdel user:001 sex#指定された (user:001) ハッシュの指定されたフィールドまたはキー値を削除します。

hkeys user:003#ハッシュ内のすべてのフィールドまたはキー値を返します。

************************************************ ***** *********************

リスト(リンクリスト)のタイプと操作(スタックまたはキュー):

lpush mylist「world」#先頭から文字列を挿入

lpush mylist "hello"# 同上

lrange mylist 0 -1#[1) "hello" 2) "world" のように 0 から最後のものまでを取得します

rpush mylist "jiejie"# 最後に挿入

linsert mylist before "hello" "this is linsert" #挿入位置を指定します(helloの前に挿入)。

lset mylist 0 "what"#指定された添え字の値を設定および変更します。

lrem mylist 1 "hello"#値 hello を持つ要素を削除します。 (n

ltrim mylist 1 2 #テーブル内の添字 1/2 を持つ要素を予約します。

lpop mylist# 先頭要素をポップしてリターンします。

rpop mylist# 末尾要素をポップしてリターンします。

rpoplpush mylist mylist2 #mylistの末尾からPopしてmylist2の先頭に挿入します。

lindex mylist 0#テーブル添字0の要素値を取得します。

llen mylist#テーブル要素の数を返します (count($arr) と同等)。

************************************************ ***** *********************

設定の種類と操作(友達推薦、ブログ、タグ機能):

smembers myset#myset コレクション内のすべての要素の値を表示します。

sadd myset "hello"#値 hello を mysets コレクションに追加します

srem myset "hello"#myset コレクション内の hello という名前の要素を削除します。

spop myset #ランダムにポップアップし、mysets 内の要素を返します。

sdiff myset2 myset3#myset2 と myset3 の差を返します (myset2 に依存します)。

sdiffstore myset4 myset2 myset3#myset2 と myset3 の差を返し、myset4 に格納します。

sinter myset2 myset3#myset2 と myset3 の共通部分を返します。

sinterstore myset5 myset2 myset3#myset2 と myset3 の共通部分を返し、myset5 に格納します。

sunion myset2 myset3# 結合を見つけます (重複を削除)

sunionstore myset6 myset2 myset3# 共用体を見つけて myset6 に保存します。

smove myset2 myset3 "three"#myset2 の 3 つを myset3 に移動します。

scard myset2#要素の数を返します。

sismember myset2 "one"# 要素 one が myset2 セット内にあるかどうかを判断します (is_array() と同等)。

srandmember myset2# myset2 コレクション内の要素をランダムに返しますが、削除はしません (array_rand() と同等)。

************************************************ ***** *********************

ソートセット (順序セット) のタイプと操作 (スコアによるソート):

zadd myzset 1 "one"#要素 1 をシーケンス 1 に追加します

zadd myzset 2 "two"# 上記と同じ。

zadd myzset 3 "two"# は更新順序が 2 の値に相当します

zrange myzset 0 -1 withscores#すべての要素を表示して並べ替えます (デフォルトは昇順)。

zrem myzset "two"#2 つ削除

zincrby myzset 2 "two"#two のシーケンス値に 2 を加算します

zrank myzset "two"#セット内の要素のインデックス添字値を返します。

zrevrank myzset two#要素を反転し、新しい添字値を返します。

zrevrange myzset 0 -1 withscores#逆順 (降順ソートと同等)

zrangebyscore myzset 1 10 withscores#要素を 1 ~ 10 の順序で返します (ページ分割可能)。

zcount myzset 1 10 #要素の数を 1 ~ 10 の順序で返します。

zcard myzset#セット内のすべての要素の数を返します。

zremrangebyrank myzset 1 2#セット内の添え字 1 ~ 2 を持つ要素を削除します。

zremrangebyscore myzset 1 10#セット内の 1 から 10 までの要素を削除します。

Redis の一般的なコマンド

キー/値関連のコマンド。

キー * #すべて検索

keys user*#指定された

をクエリします

exists user:001# 存在するかどうかを確認します。

del name#指定されたキーを削除します。

expire addr 10#有効期限を設定します

ttl addr#クエリの有効期限

select 0 #データベースを選択

move age 1#年齢をデータベース 1 に移動します。

年齢を取得 #get

persist age#年齢の有効期限を削除します。

randomkey#キーをランダムに返します

名前1 名前2#キーの名前を変更

type myset#キーのタイプを返します。

ping #Redis 接続が生きているかどうかをテストします。

エコーランプ#ランプを出力する

select 10#データベースを選択します。

quit/exit/crtl+C# クライアントを終了します

dbsize#ライブラリ内のキーの数を返します。

サーバー関連のコマンド:

info#redis サーバーの関連情報を表示します。

config get */loglevel #すべて/指定された構成情報を返します。

flushdb#現在のライブラリ内のすべてのキー/テーブルを削除します。

flushall#すべてのデータベースのすべてのキー/テーブルを削除します

2. Redis の高度な部分:

1. Redis セキュリティ:

1. ACL でセキュリティを制御します。

2. Redis に長いパスワードを追加します

#requirepass フーバード

北京パスが必要

3. redis.conf 設定で認証機能を有効にします。

方法 1: 北京を認証する

方法 2: ./redis-cli -a beijing

4. 次の設定行を redis.conf 設定ファイルに追加して、redis を単一のインターフェイスにバインドします (ただし、このネットワーク カードからのデータを受け入れるだけではありません)。

バインド 127.0.0.1 (単一マシンで構成できますが、分散またはマスター/スレーブ レプリケーションでは構成しないことをお勧めします)

5.SSLプロキシ

6. 指定されたコマンドを無効にします。

2. Redis マスター/スレーブ レプリケーション:

Redis はスレーブサーバー上でのみ設定する必要があります:

slaveof 211.122.11.11 6379 #マスターのIPとポートを指定します

masterauth beijing#これはマスターホストのパスワードです

情報#マスター/スレーブサーバーのステータスを表示します。

3. Redis トランザクション処理:

Redis トランザクションは非常に不完全です。

4. Redis 永続化メカニズム:

1. 2 つの方法: 1. データをディスクにバックアップします (スナップショット) [スナップショット作成 (スナップショット) もデフォルトの方法です]

2. 操作コマンドを記録する【追記専用ファイル(略称aof)方式】

1. データをディスクにバックアップします (スナップショット) [スナップショット作成 (スナップショット) もデフォルトの方法です]

save 900 1 #900 秒以内に複数のキーが変更された場合、スナップショットの保存が開始されます

save 300 10 #300 秒以内に 10 個を超えるキーが変更された場合、スナップショットが保存されます

60 10000を節約

2. 操作コマンドを記録する【追加専用ファイル(略称aof)方式】(より安全で耐久性が高い)

appendonly はい #aof 永続化メソッドを有効にする

#appendfsync always //書き込みコマンドを受信した直後にディスクに書き込みます。最も遅いですが、完全な永続性が保証されます

appendfsync Everysec // 1 秒に 1 回ディスクに書き込み、パフォーマンスと永続性の間で適切な妥協点を作ります

#appendfsync no //OS に完全に依存、最高のパフォーマンス、永続性の保証なし

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1133575.html技術記事 Redis の使用に関する詳細なチュートリアル、redis チュートリアル 1、Redis の基本部分: 1. Redis の導入とインストールは、mysql****************** よりも 10 倍以上高速です***Redis が適用される機会***** *********** 1. 最新の N データを取得します...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

同時性については、PHP 8.1の繊維を説明します。同時性については、PHP 8.1の繊維を説明します。Apr 12, 2025 am 12:05 AM

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティ:リソース、サポート、開発PHPコミュニティ:リソース、サポート、開発Apr 12, 2025 am 12:04 AM

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン