1. redis がインストールされると、src および /usr/local/bin の下に redis で始まるいくつかの実行可能ファイル (redis シェルと呼ばれます) が存在します。
1. redis-server は redis を開始します
2. redis-cli redis コマンド ライン ツール
3. redis-benchmark ベンチマーク テスト ツール
4. redis-check-aof AOF 永続ファイル検出ツールおよび修復ツール
5、redis-check-dump RDB 永続ファイル検出ツールおよび修復ツール
6、redis-sentinel は redissentinel を開始します
2. Redis サーバーに接続するには 2 つの方法があります。
最初の方法: インタラクティブ モード
redis-cli -h {host} -p {port}方式连接,然后所有的操作都是在交互的方式实现,不需要再执行redis-cli了。 $redis-cli -h 127.0.0.1-p 6379 127.0.0.1:6379>set hello world OK 127.0.0.1:6379>get hello "world"
2 番目の方法: コマンド モード
redis-cli -h {host} -p {port} {command}直接得到命令的返回结果。 $redis-cli -h 127.0.0.1-p 6379 get hello "world"
redis-cli には、-h、-p などの多くのパラメーターが含まれており、次のことを理解する必要があります。すべてのパラメータを指定するには、redis-cli -help コマンドを使用します。
コマンド メソッドの最初の部分
1. -r はコマンドを複数回繰り返すことを意味します
$redis-cli -r 3 ping PONG PONG PONG
ping コマンドを使用すると、 redis インスタンスが生きている 生きている場合は PONG を表示します。
2. -i
コマンドを数秒ごとに実行します (10ms などのミリ秒を使用する場合は、0.01 を記述します) -r と併用する必要があります。
$redis-cli -r 3 -i 1 ping PONG PONG PONG
$redis-cli -r 10 -i 1 info|grep used_memory_human used_memory_human:2.95G ..................................... used_memory_human:2.95G 每隔1秒输出内存的使用量,一共输出10次。 $redis-cli -h ip -p port info server|grep process_id process_id:999 获取redis的进程号999
3, -x
は、コマンドの最後のパラメータとして標準入力からデータを読み取ることを表します。
$echo "world" |redis-cli -x set hello Ok
4, -c
クラスター ノードに接続するときに使用されます。このオプションは、移動を防止し、例外を要求することができます。
5, -a
パスワードが設定されている場合は、オプション a を使用できます。
6、-scan および -pattern
は、指定されたパターンのキーをスキャンするために使用され、scan コマンドと同等です。
7. –slave
現在のクライアントが現在の Redis ノードのスレーブ ノードとしてシミュレートされる場合、それを使用して現在の Redis ノードの更新操作を取得できます。合理的に使用すると、現在接続されている Redis ノードの更新操作を記録することができ、これらの更新はビジネス開発に必要なデータとなる可能性があります。
8. –rdb
は、RDB 永続化ファイルを生成して送信し、ローカルに保存するように Redis インスタンスに要求します。定期的なバックアップが可能です。
9. –pipe
コマンドを Redis 通信プロトコルで定義されたデータ形式にカプセル化し、バッチで実行するために Redis に送信します。
10. –bigkeys
bigkey の分布を統計し、scan コマンドを使用して Redis キーをサンプリングし、大量のメモリを占有しているキーを見つけます。これらのキーがボトルネックになっている可能性があります。システムの。
11. –eval
は、lua スクリプトの実行に使用されます
12. –latency
には、-latency、-latency-history、-latency-history の 3 つのオプションがあります。 – レイテンシー距離。これらは、さまざまな形で現れるネットワーク遅延を検出します。
13. –stat
は、redis の重要な統計情報をリアルタイムで取得できます。 info コマンドは比較的完全ですが、リクエスト (1 秒あたりのリクエスト数)
14、-raw および -no-raw
-no-raw 要件などの追加データがここで確認できます。元の形式に戻します。 –raw は書式設定効果を表示します。
パート 2
redis-cli には多くのコマンドがあります。例:
接続操作に関連するコマンド:
1. デフォルトの直接接続 リモート接続 -h 192.168.1.20 -p 6379
2. Ping: 接続が確立されているかどうかをテストします。正常であれば生きています。 pong
3 を返します。 echo: print
4、select: 指定されたデータベースに切り替えます。 データベースのインデックス番号 Index は数値で指定され、0 が使用されます
5. quit: 接続を閉じる
6. auth: 単純なパスワード認証
サーバー関連コマンド:
1. time : 現在のサーバー時刻を返します
2. client list: サーバーに接続されているすべてのクライアント情報と統計データを返します。
3 を参照してください。http://redisdoc.com/server/client_list。 html
4. client kill ip:port: アドレス ip:port
5 を持つクライアントを閉じます。 save: データをディスクに同期的に保存します。
6. bgsave : データをディスクに非同期的に保存します
7. lastsave: 最後にデータがディスクに正常に保存されたときの Unix タイムスタンプを返します。
8. shhundown: データをディスクに同期的に保存してから、
9. info: サーバー情報と統計情報を提供します
10. config replacestat: info コマンドで特定の統計データをリセットします
11. config get: 取得設定ファイル情報
12. config set: 再起動せずに Redis サーバーの設定を動的に調整します。変更できる設定パラメータは、コマンド
13. CONFIG GET * # を使用して一覧表示できます。
##14. 設定の書き換え: Redis サーバーで指定された redis.conf ファイルを書き換えます 15. 監視: 受信したリクエストのリアルタイム ダンプ 16. スレーブオブ:レプリケーション ポリシー設定パブリッシュおよびサブスクライブ関連コマンド: 1. psubscribe: psubscribe news など、指定されたパターンに一致する 1 つ以上のチャネルをサブスクライブします。* tweet.*2.publish: 指定したチャネル チャネルに情報メッセージを送信します (例:publish msg "good breakfast"3、pubsub チャネル: PUBSUB CHANNELS news.i*など、現在アクティブなチャネルを一覧表示します)
4、pubsub numsub: 指定されたチャンネルに戻ります。 購読者数 (例: PUBSUB NUMSUB news.it news.internet news.sport news.music5、pubsub numpat) : クライアントによってサブスクライブされたすべてのモードの数の合計を返します6. punsubscribe: クライアントに、指定されたすべてのモードからサブスクライブを解除するように指示します。 7. 購読: 1 つ以上の指定されたチャネルの情報を購読します。たとえば、subscribe msg chat_room8, unsubscribe: クライアントに指定されたチャネルからのサブスクライブを解除するように指示します。 KEY 操作のコマンド:1、exists(key):确认一个key是否存在
2、del(key):删除一个key
3、type(key):返回值的类型
4、keys(pattern):返回满足给定pattern的所有key
5、randomkey:随机返回key空间的一个
6、keyrename(oldname, newname):重命名key
7、dbsize:返回当前数据库中key的数目
8、expire:设定一个key的活动时间(s)
9、ttl:获得一个key的活动时间
10、move(key, dbindex):移动当前数据库中的key到dbindex数据库
11、flushdb:删除当前选择数据库中的所有key
12、flushall:删除所有数据库中的所有key
对String操作的命令:
1、set(key, value):给数据库中名称为key的string赋予值value
2、get(key):返回数据库中名称为key的string的value
3、getset(key, value):给名称为key的string赋予上一次的value
4、mget(key1, key2,…, key N):返回库中多个string的value
5、setnx(key, value):添加string,名称为key,值为value
6、setex(key, time, value):向库中添加string,设定过期时间time
7、mset(key N, value N):批量设置多个string的值
8、msetnx(key N, value N):如果所有名称为key i的string都不存在
9、incr(key):名称为key的string增1操作
10、incrby(key, integer):名称为key的string增加integer
11、decr(key):名称为key的string减1操作
12、decrby(key, integer):名称为key的string减少integer
13、append(key, value):名称为key的string的值附加value
14、substr(key, start, end):返回名称为key的string的value的子串
对List操作的命令:
1、rpush(key, value):在名称为key的list尾添加一个值为value的元素
2、lpush(key, value):在名称为key的list头添加一个值为value的 元素
3、llen(key):返回名称为key的list的长度
4、lrange(key, start, end):返回名称为key的list中start至end之间的元素
5、ltrim(key, start, end):截取名称为key的list
6、lindex(key, index):返回名称为key的list中index位置的元素
7、lset(key, index, value):给名称为key的list中index位置的元素赋值
8、lrem(key, count, value):删除count个key的list中值为value的元素
9、lpop(key):返回并删除名称为key的list中的首元素
10、rpop(key):返回并删除名称为key的list中的尾元素
11、blpop(key1, key2,… key N, timeout):lpop命令的block版本。
12、brpop(key1, key2,… key N, timeout):rpop的block版本。
13、rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
对Set操作的命令:
1、sadd(key, member):向名称为key的set中添加元素member
2、srem(key, member) :删除名称为key的set中的元素member
3、spop(key) :随机返回并删除名称为key的set中一个元素
4、smove(srckey, dstkey, member) :移到集合元素
5、scard(key) :返回名称为key的set的基数
6、sismember(key, member) :member是否是名称为key的set的元素
7、sinter(key1, key2,…key N) :求交集
8、sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
9、sunion(key1, (keys)) :求并集
10、sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
11、sdiff(key1, (keys)) :求差集
12、sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
13、smembers(key) :返回名称为key的set的所有元素
14、srandmember(key) :随机返回名称为key的set的一个元素
对Hash操作的命令
1、hset(key, field, value):向名称为key的hash中添加元素field
2、hget(key, field):返回名称为key的hash中field对应的value
3、hmget(key, (fields)):返回名称为key的hash中field i对应的value
4、hmset(key, (fields)):向名称为key的hash中添加元素field
5、hincrby(key, field, integer):将名称为key的hash中field的value增加integer
6、hexists(key, field):名称为key的hash中是否存在键为field的域
7、hdel(key, field):删除名称为key的hash中键为field的域
8、hlen(key):返回名称为key的hash中元素个数
9、hkeys(key):返回名称为key的hash中所有键
10、hvals(key):返回名称为key的hash中所有键对应的value
11、hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
实例
query在线分析
redis-cli MONITOR | head -n 5000 | ./redis-faina.py
监控正在请求执行的命令
在cli下执行monitor,生产环境慎用。
模拟oom
redis-cli debug oom
模拟宕机
redis-cli debug segfault
模拟hang
redis-cli -p 6379 DEBUG sleep 30
获取慢查询
SLOWLOG GET 10
结果为查询ID、发生时间、运行时长和原命令 默认10毫秒,默认只保留最后的128条。单线程的模型下,一个请求占掉10毫秒是件大事情,注意设置和显示的单位为微秒,注意这个时间是不包含网络延迟的。
slowlog get 获取慢查询日志
slowlog len 获取慢查询日志条数
slowlog reset 清空慢查询
配置:
config set slow-log-slower-than 20000 config set slow-max-len 1000 config rewrite
更多redis知识请关注PHP中文网redis教程栏目。
以上がredis cliコマンドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。