redis クラスターの構築と監視環境
3 つのマスターと 3 つのスレーブのクラスターを実現
基本的なクラスターの構築
wget http://download 経由で簡単にダウンロードできます。 .redis.io/releases/redis-4.0.10.tar.gz
tar zxvf redis-4.0.10.tar.gz
を解凍しますwget http://download.redis.io/releases/redis-4.0.10.tar.gz
解压缩
tar zxvf redis-4.0.10.tar.gz
指定安装路径,切换root用户执行
make && make PREFIX=/usr/local/redis install
,可能出现权限不够的问题,sudo同样会报错,直接使用root进行操作。
安装编译工具
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install tcl
创建redis集群文件夹
因为是/usr,所以始终都是在root权限下进行操作
cd /usr/local/redis
mkdir cluster
cd cluster
mkdir 7000 7001 7002 7003 7004 7005
修改配置文件
复制redis conf内的config文件复制到六个文件夹中,并且修改以下内容
# 端口号 port 7000 # 后台启动 daemonize yes # 开启集群 cluster-enabled yes #集群节点配置文件 cluster-config-file nodes-7000.conf # 集群连接超时时间 cluster-node-timeout 5000 # 进程pid的文件位置 pidfile /home/ubuntu/redis-4.0.10/pid/redis-7000.pid #工作文件夹 dir "/home/ubuntu/redis-4.0.10/working" # 开启aof appendonly yes # aof文件路径 appendfilename "appendonly-7005.aof" # rdb文件路径 dbfilename dump-7000.rdb
redis 的配置文件中的bind指定的是redis服务器的网卡ip,也就是redis服务器的ip
启动脚本
cd /home/ubuntu/redis-4.0.10/
touch start.link.sh
为了操作简单,创建脚本修改启动脚本,为
#!/bin/bash export BASE_FLOD="/usr/local/redis" {BASE_FLOD}/bin/redis-server /usr/local/redis/cluster/7000/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/cluster/7001/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/cluster/7002/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/cluster/7003/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/cluster/7004/redis.conf /usr/local/redis/bin/redis-server /usr/local/redis/cluster/7005/redis.conf #cd src #./redis-trib.rb create --replicas 1 192.168.40.128:7000 192.168.40.128:7001 192.168.40.128:7002 192.168.40.128:7003 192.168.40.128:7004 192.168.40.128:7005
其中注释的是为了简化初始启动的,ip需要跟每个节点配置的redis.conf 中bind 属性绑定的一致,启动后可以通过ps -ef | grep redis命令查询对应的线程是否启动
集群启动
关联程序使用的ruby写的,所以要搭建rudy的运行环境,需要安装rudbygem
sudo apt-get install ruby rubygems -y
gem install redis,运行到这里会感觉十分慢,需要耐心等待,在redis安装目录下,src文件夹redis-trib.rb
运行
redis-trib.rb create --replicas 1 192.168.40.128:7000 192.168.40.128:7001 192.168.40.128:7002 192.168.40.128:7003 192.168.40.128:7004 192.168.40.128:7005
,检查配置的信息是否有错误,没有直接yes就可以.[OK] All 16384 slots covered.
代表接群启动成功。
节点查看,重启
查看集群运行状态:使用命令./redis-trib.rb check 192.168.40.128:7000
,进行集群的状态检查
性能测试
自带测试工具redis-benchmark
redis-benchmark -h 192.168.40.128 -p 6379 -c 100 -n 100000
100个并发连接,100000个请求,检测 host 为 localhost 端口为6379的 redis 服务器性能。redis-benchmark -h 192.168.40.128 -p 6379 -q -d 100
测试存取大小为100字节的数据包的性能。redis-benchmark -t set,lpush -n 100000 -q
只测试某些操作的性能。redis-benchmark -n 100000 -q script load "redis.call(‘set’,’foo’,’bar’)"
只测试某些数值存取的性能。
集群密码设置
集群搭建初始不需要密码,启动完成后,先看每个节点的配置文件是否有读写权限,如果没有读写权限,需要chmod修改的读写权限,通过
./redis-cli -c -p port config set masterauth password config set requirepass password config rewrite
分别连接每个节点进行设置
若要重启发现连接不上,修改启动脚本 redis-.sh 99行,配置启动脚本密码启动@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60,:password => "yangfan@1995")
インストールを指定しますパスとスイッチ root ユーザーが make && make PREFIX=/usr/local/redis install
を実行すると、権限不足の問題が発生する可能性があり、Sudo は root を直接使用して操作します。
コンパイルツールをインストールします
-
sudo apt-get update
-
sudo apt-get install gcc
🎜🎜🎜🎜sudo apt-get install make
🎜🎜🎜🎜sudo apt-get install tcl
🎜🎜🎜🎜Redis クラスターフォルダーを作成します🎜🎜🎜🎜 /usr なので, そのため、常に root 権限で操作してください🎜🎜🎜🎜cd /usr/local/redis
🎜🎜🎜🎜mkdir cluster
🎜🎜🎜🎜cd cluster
🎜🎜🎜🎜mkdir 7000 7001 7002 7003 7004 7005
🎜🎜🎜🎜設定ファイルを変更します🎜🎜 redis conf 内の設定ファイルを 6 つのフォルダーにコピーし、次の内容を変更します🎜 redis 構成ファイルの/* *集群连接测试 */ @Test public void testJedisCluster() { Set<HostAndPort> nodes = new LinkedHashSet<>(); //所有主机节点ip和端口 nodes.add(new HostAndPort("192.168.40.128", 7000)); nodes.add(new HostAndPort("192.168.40.128", 7001)); nodes.add(new HostAndPort("192.168.40.128", 7002)); nodes.add(new HostAndPort("192.168.40.128", 7003)); nodes.add(new HostAndPort("192.168.40.128", 7004)); nodes.add(new HostAndPort("192.168.40.128", 7005)); //没有密码 //JedisCluster cluster = new JedisCluster(nodes); //添加密码调用 JedisCluster cluster = new JedisCluster(nodes, 5000, 5000, 10, "yangfan@1995", new GenericObjectPoolConfig()); //cluster.zadd("test_1", String.valueOf(""),"id_2"); System.out.println(cluster.zscore("test_1", "id_1")); try { cluster.close(); } catch (IOException e) { e.printStackTrace(); } }
🎜bind は、redis サーバーのネットワーク カード IP を指定します。これは、redis サーバーの IP です🎜🎜🎜起動スクリプト🎜🎜🎜🎜cd /home/ubuntu/redis-4.0 .10/
🎜🎜🎜🎜touch start.link.sh
操作を簡単にするために、スクリプト🎜🎜🎜🎜を作成し、起動スクリプトをコメント化された🎜🎜"RedisServers": [ { "server": "192.168.40.128", "port" : 7000, "password" : "yangfan@1995" }, //...多个监听 ], "DataStoreType" : "redis", "RedisStatsServer": //存储的redis监听接口 { "server" : "127.0.0.1", "port" : 6379 }, "SqliteStatsStore" : { "path": "/home/ubuntu/redis-4.0.10/working/redislive.db" //进行存储的文件 } }
🎜に変更します初期起動を簡素化するため、各ノードに設定された redis.conf のバインド属性に IP をバインドする必要があります。起動後、ps -ef grep redis コマンドを使用して、対応するスレッドが開始されているかどうかを確認できます。 🎜🎜クラスターの起動🎜🎜 🎜🎜関連プログラムはrubyで書かれているため、rudyの動作環境を構築するには、rudbygemをインストールする必要があります🎜🎜🎜🎜sudo apt-get install Ruby rubygems -y
🎜🎜🎜🎜gem install redis、実行 ここでは非常に遅く感じるため、redis インストール ディレクトリでredis-trib.rb create --replicas 1 192.168.40.128:7000 192.168 を実行してください。 src フォルダー redis-trib.rb🎜🎜🎜🎜 内。163 84 スロットがカバーされています。
は、グループ接続が正常に開始されたことを意味します。 🎜🎜🎜🎜ノードを確認して再起動します🎜🎜クラスターの実行ステータスを確認します: コマンド./redis-trib.rb check 192.168.40.128:7000
を使用して、クラスターのステータスを確認します。クラスター🎜🎜🎜 パフォーマンス テスト🎜組み込みテスト ツール redis-benchmark
🎜🎜🎜redis-benchmark -h 192.168.40.128 -p 6379 -c 100 -n 100000
100同時接続、100000 ホストが localhost でポートが 6379 の Redis サーバーのパフォーマンスを検出するリクエストが行われます。 🎜🎜🎜🎜redis-benchmark -h 192.168.40.128 -p 6379 -q -d 100
サイズが 100 バイトのデータ パケットにアクセスするパフォーマンスをテストします。 🎜🎜🎜🎜redis-benchmark -t set,lpush -n 100000 -q
特定の操作のパフォーマンスのみをテストします。 🎜🎜🎜🎜redis-benchmark -n 100000 -q script load "redis.call('set','foo','bar')"
特定の数値アクセスのパフォーマンスのみをテストします。 🎜🎜🎜🎜クラスターのパスワード設定🎜🎜 クラスターの初期構築にはパスワードは必要ありません。起動が完了したら、まず各ノードの設定ファイルに読み取りおよび書き込み権限があるかどうかを確認します。読み取りおよび書き込み権限は、chmod によって変更する必要があります。権限は、🎜rrreee🎜 を介して各ノードに個別に接続することで設定できます。
再起動して接続に到達できない場合は、次の 99 行目を変更してください。起動スクリプト redis-.sh を作成し、起動するように起動スクリプトのパスワードを設定します@r = Redis.new(:host => @info[:host], :port => @info[: port], :timeout => 60,:password => "yangfan@1995")
🎜🎜🎜マスター/スレーブモード、セントリー、クラスターの関係🎜🎜🎜マスター/スレーブ モードは、レプリケーションと永続関係、およびマスター/スレーブ バックアップ関係を指定します🎜🎜🎜🎜センチネル: マスター データベースが発生したとき、サービスが異常に中断された後、開発者はマスター データベースにアップグレードするスレーブ データベースを手動で選択できます。システムがサービスを提供し続けることができるようにします。これは主に、マスター/スレーブ レプリケーション時のマスター/スレーブ関係の手動切り替えの問題を解決するための検出ツールであり、マスター/スレーブを自動的に切り替えることができます。 🎜 使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式存储。即每台redis存储不同的内容,共有16384个slot。每个redis分得一些slot,hash_slot = crc16(key) mod 16384 找到对应slot,键是可用键,如果有{}则取{}内的作为可用键,否则整个键是可用键集群至少需要3主3从,且每个实例使用不同的配置文件,主从不用配置,集群会自己选。
监控部署
RedisLive搭建部署
运行环境部署
git clone https://github.com/kumarnitin/RedisLive.git
下载redislive,解压缩unzip -o -d /home/ubuntu/ RedisLive-master.zip
-
进入src文件夹,复制example文件,编辑
"RedisServers": [ { "server": "192.168.40.128", "port" : 7000, "password" : "yangfan@1995" }, //...多个监听 ], "DataStoreType" : "redis", "RedisStatsServer": //存储的redis监听接口 { "server" : "127.0.0.1", "port" : 6379 }, "SqliteStatsStore" : { "path": "/home/ubuntu/redis-4.0.10/working/redislive.db" //进行存储的文件 } }
ubuntu@ubuntu:~/redis-4.0.10$ mkdir pid
ubuntu@ubuntu:~/redis-4.0.10$ mkdir log
ubuntu@ubuntu:~/redis-4.0.10$ mkdir working
//保存aof,rdb,node-config文件。RedisLive分为两部分,其中一部分为监控脚本,另一部分为web服务,所以需要分别启动。`./redis-monitor.py
--duration=120`./redis-live.py
Q&A
redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster redis node的redis.conf 绑定ip设置为指定的redis节点ip,启动集群时只用指定ip启动,不使用192.168.40.128
connect refuse 关闭防火墙
No module named redis
查看python位置
which python
先备份
sudo cp /usr/bin/python /usr/bin/python_cp
删除
sudo rm /usr/bin/python
默认设置成python3.5,创建链接
sudo ln -s /usr/bin/python3.5 /usr/bin/python
相关推荐:
以上がRedis クラスターの構築と再ライブの監視とデプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
