この記事では、Redis に関する関連知識を提供し、主に Redis 管理ツールの関連問題と Redis データベースの管理方法を紹介します。以下で見てみましょう。皆さん、助かりました。
推奨学習: Redis チュートリアル
この記事では、Redis 管理について詳しく説明します。セキュリティや通信プロトコルなどの知識
同時に、それに密接に関係するサードパーティの管理ツールも導入されます。
1. 安全性
安全性というと、私たちは何を思い浮かべますか?
例えば、信頼できる環境は安心感をもたらしますが、慣れない環境は得体の知れない恐怖や孤独を感じます。
もう 1 つの例は、新荘プロジェクトのローカリゼーション置換 (安科置換) です。ここではこれを国荘プロジェクトと呼びます。これは、信頼性、安全性、信頼性、独立性と制御性の目標を達成することを目的としています。
私は安全意識を高めるために、上でたくさん話しました (くだらないことがたくさんあり、疲れました)。
Redis は、創設者がかつて述べたように、シンプルさが美しいです。しかし、セキュリティレベルに関してはあまり多くの作業が行われていません。
ここで 1 つ付け加えておきたいのですが、前回は Redis サービスを正常にシャットダウンする方法について触れませんでした。プロセスを強制終了して制御することもできますが、次の方法を使用してシャットダウンすることをお勧めします:
$ /opt/redis-6.0.8/src/redis-cli shutdown1. 信頼できる環境Redis のセキュリティ設計は、次の前提に基づいています。 「Redisは信頼できる環境で動作する」としました。本番環境 (正式リリース環境) で実行する場合、Redis サーバーへの外部からの直接接続は許可されません。このとき、接続はアプリケーション経由で行う必要があります。信頼できる環境で実行することは、Redis サーバーのセキュリティを確保するための重要な方法です。レディス。 1.1. バインドパラメータRedis のデフォルト設定ファイル redis.conf では、ローカル ネットワーク リクエストのみが受け入れられます。ただし、この設定は、構成ファイルの
bind パラメータを変更することで変更できます。デフォルトのバインド設定は、
bind:127.0.0.1
bind# です。 ## パラメータ 複数の IP アドレスをバインドすることもでき、次の例に示すように、IP アドレスはスペースで区切られます。
# Examples:# bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1

in Redis3. バージョン 2 では、Redis が信頼できる環境で実行されることをより確実にするための保護モードという特別なモードが導入されています。保護モードはデフォルトでオンになっていることに注意してください。
パラメータ設定:
#开启保护模式protected-mode yes#禁止保护模式protected-mode no
:
保護モードを有効にする: 不在時受信バインド バインドされたネットワーク クライアントがコマンドを送信すると、クライアントがパスワードを設定しない場合、Redis はコマンドの実行に対してエラー拒否 (DENIED) を返します。- 保護モードを無効にする: protected-mode no
- を使用して、構成で保護モードを無効にできます。
セキュリティ: 運用環境の場合、信頼できるクライアントがサーバーに接続できるようにシールド (ファイアウォール) がオンになっていることを確認する必要があります。
- たとえば、テストするときは、Windows 上の Linux 上の Redis サービスに接続します。テストを容易にするために、この時点で firewalld ファイアウォールを一時的に閉じるか、
コマンドを使用して 6379 のデフォルト ポートと Redis サービスを追加します。ファイアウォールに関する知識については、以前の記事を参照してください。 "firewalld および iptables ファイアウォール ツール": <pre class="brush:php;toolbar:false">#临时关闭防火墙systemctl stop firewalld.service</pre>
: Redis 3.2 より前のバージョンでは、デフォルトですべてのネットワーク インターフェイスがバインドされ、ネットワーク (パブリック ネットワークを含む) 上の任意のコンピューターが接続できます。 Redisサーバー。 古いバージョンを使用している人は注意が必要ですので、このパラメータを変更するか、新しいバージョンにアップグレードすることをお勧めします。 2. データベースパスワード
Redis はデータベースパスワード機能を提供します。最初は直接接続できると愚かにも思っていましたが、パスワードがなかったため、非常に危険でした。これがパスワードの設定に使用できることを知ったのは実際に使ってからのことですが、それまでは知りませんでした。注目に値するのは、
6.0 バージョンでは、マルチユーザー権限制御機能がサポートされているということです。 2.1. Redis のパスワード設定
については前回の記事でも触れました。 Redis データベースのパスワードは、パラメータ
requirepass によって制御されます。デフォルトの 6.0.8 バージョンは無効になっているため、手動で有効にする必要があります。
#默认禁用掉了#requirepass foobared#启用密码requirepass 123456

DENIED
というプロンプトを表示し始めました。 bind
を使用して、信頼できる IP をバインドするか、保護モードを無効にします。最後に、確認のためにパスワードの入力を求められます。 <p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/08d9eedbfc607ae01957946d8510e18f-5.png?x-oss-process=image/resize,p_40" class="lazy" alt=""></p>
<p>示例:设置键sky,set “sky” “hello redis”</p>
<pre class="brush:php;toolbar:false">#设置skyset "sky" "hello redis"</pre>
<p>重启redis服务(需要读取到redis.conf文件),会提示验证密码,如下图所示。</p>
<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/7821f9c6f024e60ce5971acfaa90efbd-6.png?x-oss-process=image/resize,p_40" class="lazy" alt=""></p>
<pre class="brush:php;toolbar:false">#获取skyget sky(error) NOAUTH Authentication required.
#提示需要密码认证
#认证auth 123456
#再次获取skyget sky"hello redis"</pre>
<p>虽然数据库设置密码很方便,但是在复杂的场景中经常需要使用更加细粒度的访问权限控制。比如:</p>
<ul>
<li>生产环境中的应用程序下不应该具有执行CONFIG、FLUSHALL涉及到管理或者数据安全的命令权限</li>
<li>多个程序因不同用途共用一个Redis服务时,建议限制某个程序访问其它程序产生的键。</li>
</ul>
<p>tips:为此,Redis6.0推出了访问控制列表(ACL)功能,可以支持多用户,并且设置每个用户可以使用的命令和访问的键名规则等。可以通过配置文件设置,如下:</p>
<ul>
<li>将ACL配置直接写在Redis配置文件中</li>
<li>将ACL配置写在单独的文件中,然后在Redis配置文件通过<code>aclfile
指令引入,例如:
aclifile /opt/person/conf.acl
2.1、Redis主从复制注意事项
在配置Redis复制的时候,如果主库设置了密码,需要在从库的配置文件中通过masterauth <master-password></master-password>
参数设置主库的密码,使从库连接主库时自动使用auth命令验证,配置如下。
masterauth <master-password></master-password>
3、命名命令
Redis支持在配置文件中将命令重命名,例如将FLUSHALL命令重命名为一个比较复杂的名字,达到保证只有自己的应用可以使用该命令。当然,这个功能可以看做在6.0版本之前没有ACL,作为对命令安全性的一个补充。如下配置:
rename-command FLUSHALL redisabcdsky1r2d3is
如果希望直接一点,直接禁用,通过重命名为空字符
rename-command FLUSHALL ""
再次强调:安全起见,无论设置密码还是重命名命令,都应遵循保证配置文件的安全性,否则就无意义了。
二、通信协议
之前有了解到Redis的主从复制以及持久化AOF文件的格式,通过了解Redis通信协议能更好的理解Redis。
当然Redis支持两种通信协议。如下:
- 一种是二进制安全的统一请求协议(unified request protocol)
- 第二种是比较直观的便于在telnet程序中输入的简单协议
1、简单协议
简单协议适合在telnet程序中和Redis通信。如下是通过telnet测试与Redis通信:
linux下Redhat系列安装telnet通过yum命令:
yum -y install telnet
Windows在启用或关闭Windows功能中启用telnet
[root@dywangk redis-6.0.8]# telnet 127.0.0.1 6379Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'.auth 123456 #同样需要验证密码,之前设置了密码+OKset foo bar +OK get foo$3bar#输入quit退出telnet
1.1、错误回复
错误回复(error reply)以 - 开头并在后面跟着错误信息:
-ERR unknown command ``, with args beginning with:
1.2、状态回复
状态回复(status reply)以+开头
+OK
1.3、整数回复
整数回复(integer reply)以:开头
:3
1.4、字符串回复
字符串(bulk reply)回复以$开头
$3
2、统一请求协议
统一请求协议是从Redis1.2开始加入的,其命令格式与多行字符串回复格式类似。也以telnet为例演示:
[root@dywangk redis-6.0.8]# telnet 127.0.0.1 6379Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'.auth 123456 #同样需要验证密码,之前设置了密码+OK *3$3set$3foo$3bar +OK#输入quit退出telnet
同样,在发送命令的时候指定了后面字符串的长度,所以每个命令的每个参数都可以包含二进制的字符。
Redis的AOF文件和主从复制时数据库发送的内容使用了统一请求协议。如果简单的使用telnet与Redis进行通信,使用简单协议即可。
三、管理工具
1、redis-cli
看到redis-cli大家肯定不陌生,是的我们学习测试快速融入都是使用的redis-cli命令进行的,Redis自带的客户端。Redis可以执行大部分的Redis命令,包括查看数据库信息的info
命令、更改数据库设置的config
命令和强制进行RDB快照的save
命令。简单介绍几个管理Redis常用的命令。
1.1、耗时命令日志
当一条命令执行时间超过限制时,Redis会将该命令的执行时间等信息加入耗时命令日志(slow log)以供开发者查看。通过配置文件的slowlog-log-slower-than 10000
参数设置限制,注意单位是微秒,可以看到默认为10000。通过slowlog-max-len 128
限制记录的条数。
获取当前耗时命令日志
slowlog get
每条日志由以下4个部分组成
- 唯一日志ID
- 执行的Unix时间
- 耗时时间,单位为微秒
- 命令及其参数
测试时,将slowlog-log-slower-than 0 参数设置为0
slowlog-log-slower-than 0
1.2、命令监控
Redis提供了monitor来监控Redis执行的所有命令,redis-cli也支持。例如:
monitor
注意:一般用于调试和纠错使用。
2、Medis
获取地址:https://getmedis.com/
当Redis中的键比较多时,此时使用redis-cli管理略显不足。Medis是一款macOS下的可视化Redis管理工具。通过界面即可实现管理Redis。
3、phpRedisAdmin
看到phpRedisAdmin,大家也许会联想到以网页形式管理MySQL的phpMyAdmin管理工具。
下载地址:https://github.com/erikdubbelboer/phpRedisAdmin
关于工具的使用,可以参考github说明,这里不做过多介绍。
建议:github那访问速度大家都懂的,建议导入到gitee作为镜像仓库使用,每隔一段时间同步。
4、Rdbtools
一款采用Python语言开发的Redis的快照文件解析器,它可以根据快照文件导出json数据文件、分析Redis中每个键的占用空间情况。
下载地址:https://github.com/sripathikrishnan/redis-rdb-tools
关于工具的使用,可以参考github说明,这里不做过多介绍。
5、命令参考
最后介绍一个Redis命令大全参考网站,源自于Redis官网,链接如下:
https://redis.io/commands
推荐学习:Redis学习教程
以上が30 分で Redis の管理方法を学びますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

redisisclassifiedsaNosqldatabasebasesakey-valuedataModelinsteaded ofthetraditionaldatabasemodel.itoffersspeedand andffficability、makingidealforreal-timeaplications andcaching、butmaynotbesbesutable fors cenariois requiring datientiantientioniity

Redisは、データをキャッシュし、分散ロックとデータの持続性を実装することにより、アプリケーションのパフォーマンスとスケーラビリティを向上させます。 1)キャッシュデータ:Redisを使用して頻繁にアクセスしたデータをキャッシュして、データアクセス速度を向上させます。 2)分散ロック:Redisを使用して分散ロックを実装して、分散環境での操作のセキュリティを確保します。 3)データの持続性:データの損失を防ぐために、RDBおよびAOFメカニズムを介してデータセキュリティを確保します。

Redisのデータモデルと構造には、5つの主要なタイプが含まれます。1。文字列:テキストまたはバイナリデータの保存に使用され、原子操作をサポートします。 2。リスト:キューとスタックに適した注文された要素コレクション。 3.セット:順序付けられていない一意の要素セット、セット操作をサポートします。 4。注文セット(sortedset):ランキングに適したスコアを持つ一意の要素セット。 5。ハッシュテーブル(ハッシュ):オブジェクトの保存に適したキー価値ペアのコレクション。

Redisのデータベースメソッドには、メモリ内データベースとキー価値ストレージが含まれます。 1)Redisはデータをメモリに保存し、速く読み取り、書き込みます。 2)キー価値のペアを使用してデータを保存し、キャッシュやNOSQLデータベースに適したリスト、コレクション、ハッシュテーブル、注文コレクションなどの複雑なデータ構造をサポートします。

Redisは、高速パフォーマンス、リッチデータ構造、高可用性とスケーラビリティ、持続性能力、幅広いエコシステムサポートを提供するため、強力なデータベースソリューションです。 1)非常に速いパフォーマンス:Redisのデータはメモリに保存され、非常に速い読み取り速度と書き込み速度が高く、高い並行性と低レイテンシアプリケーションに適しています。 2)豊富なデータ構造:さまざまなシナリオに適したリスト、コレクションなど、複数のデータ型をサポートします。 3)高可用性とスケーラビリティ:マスタースレーブの複製とクラスターモードをサポートして、高可用性と水平スケーラビリティを実現します。 4)持続性とデータセキュリティ:データの整合性と信頼性を確保するために、データの持続性がRDBとAOFを通じて達成されます。 5)幅広い生態系とコミュニティのサポート:巨大なエコシステムとアクティブなコミュニティにより、

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

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