Redisの使い方

Jun 04, 2019 pm 03:49 PM
redis

この記事ではredisの基本的な使い方を紹介します。

Redisの使い方

#1. Redis 基本部分:

#redis が適用される場面


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


2. ランキング アプリケーション、上位 N を取得する操作

3. 有効期限は次のとおりです。正確に設定する アプリケーション

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

5. ユニークな操作、一定期間のすべてのデータ重複排除値を取得する

6. リアルタイムシステム、スパム対策システム

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
make
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
ログイン後にコピー

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 | grep redis
netstat -tunpl | grep 6379#查看端口是否占用。
ログイン後にコピー

6) クライアントに入る/終了します

cd /usr/local/redis/bin
./redis-cli#进入
quit#退出
ログイン後にコピー

7) redis を閉じる


pkill redis-server#关闭
./redis-cli shutdown#关闭
ログイン後にコピー

Redis のセキュリティ

Redis のセキュリティ???(次の 4 つの方法による)
1. ACL コントローラーのセキュリティを使用する。


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


bind 127.0.0.1


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


4. redis では、 .conf 設定により認証機能が有効になります。


5.SSL プロキシ


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


Redis 構成


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

pidfile /var/run/redis.pid


bind バインディング IP でデフォルトで複数の PID アドレスを構成します。設定後は、この IP からのリクエストのみを受け入れます


port listen ポート、デフォルトは 6379 です。


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


loglevel debug、verbose、notice の 4 つのレベルに分かれています。 、警告


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


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


save redis の頻度を設定します。データベースミラーリングの

#rdbcompression ミラーバックアップ実行時に圧縮を行うかどうか

Dbfilename ミラーバックアップファイルのファイル名

Dir Database Fileミラー バックアップの配置パス

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 ハッシュ

Activerehashing Rehash

5 データ型の重要な値を設定します: 文字列、ハッシュ、リンク リスト、セット、順序付きセット。

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

redis<===同期====>mysql

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

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

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

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

String (文字列) 型:

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

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

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

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

setex ヘアカラー 10 赤 #設定されたキー値の有効期間は 10 秒です。

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

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 ずつ増加しますtime

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 の name キーの値を取得します。


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 "#ibid


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 を持つ要素を (1) 削除します。 (n<0 は末尾から削除され、n=0 は完全に削除されます)


ltrim mylist 1 2 #添字 1/2 の要素をテーブルに保持します。


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

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

rpoplpush mylist mylist2 #mylist の末尾からポップし、mylist2 の先頭に挿入します。

lindex mylist 0#テーブルインデックス 0 の要素値を取得します。

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

sets (セット) の種類と操作 (友達の推薦、ブログ、タグ機能):


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"#要素 1 が 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"#two を削除

zincrby myzset 2 "two"#two のシーケンス値に 2 を追加

zrank myzset "two"#元に戻るset 要素のインデックス添え字の値。

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 * #すべての

keys をクエリ user*#指定された

exists user:001# をクエリして、存在するかどうかを確認します。

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

expire addr 10#设置过期时间

ttl addr#查询过期时间

select 0 #选择数据库

move age 1#将age移到1数据库。

get age #获取

persist age#移除age的过期时间。

randomkey#随机返回一个key

rename name1 name2#重命名键

type myset#返回键的类型。

ping #测试redis连接是否存活。

echo lamp#输出一个lamp

select 10#选择数据库。

quit/exit/crtl+C#退出客户端

dbsize#返回库里的键的个数。

服务器相关命令:

info#显示redis服务器的相关信息。

config get */loglevel #返回所有/指定的配置信息。

flushdb#删除当前库中的所有键/表。

flushall#删除所有数据库中的所有键/表

二、Redis高级部分:

1、Redis安全性:

1.用ACL控制器安全性。

2.给redis加上较长密码

# requirepass foobared

requirepass beijing

3.在redis.conf配置启用认证功能。

方式一:Auth beijing

方式二:./redis-cli -a beijing

4.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind 127.0.0.1(单台机器的时候可以配置,分布式或主从复制时最好不要配置)

5.SSL代理

6.禁用指定命令。

2、Redis主从复制:

redis只需在从服务器(slave)上配置即可:

slaveof 211.122.11.11 6379 #指定master 的ip 和端口

masterauth beijing#这是master主机的密码

Info#查看主/从服务器的状态。

3、Redis事务处理:

Redis事务很不完善。

4、Redis持久化机制:

方式一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]

记录操作命令[ Append-only file(缩写aof)的方式]

备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000
ログイン後にコピー

方式二、记录操作命令[ Append-only file(缩写aof)的方式](较安全持久化)

appendonly yes #启用aof 持久化方式 
# appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化 
appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
ログイン後にコピー

以上が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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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 08:45 PM

Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisでサーバーを開始する方法 Redisでサーバーを開始する方法 Apr 10, 2025 pm 08:12 PM

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

Redisのソースコードを読み取る方法 Redisのソースコードを読み取る方法 Apr 10, 2025 pm 08:27 PM

Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

Redisロックの使用方法 Redisロックの使用方法 Apr 10, 2025 pm 08:39 PM

Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

Redis-Serverが見つからない場合はどうすればよいですか Redis-Serverが見つからない場合はどうすればよいですか Apr 10, 2025 pm 06:54 PM

Redis-Serverが見つからない問題を解決するための手順:インストールを確認して、Redisが正しくインストールされていることを確認します。環境変数Redis_hostとredis_portを設定します。 Redis Server Redis-Serverを起動します。サーバーがRedis-Cli pingを実行しているかどうかを確認します。

Redisのすべてのキーを表示する方法 Redisのすべてのキーを表示する方法 Apr 10, 2025 pm 07:15 PM

Redisのすべてのキーを表示するには、3つの方法があります。キーコマンドを使用して、指定されたパターンに一致するすべてのキーを返します。スキャンコマンドを使用してキーを繰り返し、キーのセットを返します。情報コマンドを使用して、キーの総数を取得します。

基礎となるRedisを実装する方法 基礎となるRedisを実装する方法 Apr 10, 2025 pm 07:21 PM

Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

See all articles