検索

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 データ型の重要な値を設定します: 文字列、ハッシュ、リンク リスト、セット、順序付きセット。

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

redismysql

同時に、データもハードディスクに書き込まれます。したがって、データは安全です (突然の停電を除き、サービスの再起動は 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
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 までご連絡ください。
NOSQLの理解:Redisの重要な機能NOSQLの理解:Redisの重要な機能Apr 13, 2025 am 12:17 AM

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redis:主要な機能を特定しますRedis:主要な機能を特定しますApr 12, 2025 am 12:01 AM

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redis:一般的なデータ構造のガイドRedis:一般的なデータ構造のガイドApr 11, 2025 am 12:04 AM

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

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

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

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

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

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:12 PM

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

Redisクラスターzsetの使用方法Redisクラスターzsetの使用方法Apr 10, 2025 pm 10:09 PM

RedisクラスターでのZsetの使用:Zsetは、要素をスコアに関連付ける順序付けられたコレクションです。シャード戦略:a。ハッシュシャーディング:ZSTキーに従ってハッシュ値を分配します。 b。範囲シャード:要素スコアに従って範囲に分割し、各範囲を異なるノードに割り当てます。操作の読み取りと書き込み:a。読み取り操作:ZSetキーが現在のノードのシャードに属している場合、ローカルで処理されます。それ以外の場合は、対応するシャードにルーティングされます。 b。書き込み操作:Zsetキーを保持しているシャードに常にルーティングされます。

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ヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール