、Redisのクラスタの説明
Redisのは、ANSI CでコンパイルされたメモリのNoSQLデータベースの形で、キーと値であり、本当に優れた技術です、BSDは、メモリの持続性に基づいて、契約やサポートネットワークを遵守するタイプ、キーと値のデータベースをログに記録することができますそして、多言語のAPIを提供します。読み取りと書き込みのパフォーマンスの速度が非常に良いですので、Redisの最大の特徴は、それがメモリ内のすべてのデータをするということです。Redisのは、そのような商品のスパイクやその他の活動を購入すると、ある程度の並行性インスタントウェブサイトを解決することができ、操作するためのメモリ、高性能に基づいています。
また、大量のデータが条件を満たしているからデータを照会する必要がありながら、サイトの同時アクセスが遅く、書き込み、SQLクエリのための高速応答、送信要求のフロントエンド、およびMySQLのバックエンドデータベースとの対話を必要とする、高い圧力に耐えるために、この時間は、導入しますRedisの、RedisのにキャッシュからMySQLのデータは、次の読み取り時のパフォーマンスが向上します。もちろん、それはまた、スナップショットの形式でメモリ内のデータをサポートし、ハードディスクに永続性をログに記録するので、でも停電、機械であれば障害が異常なデータが失われることはありませんが発生した場合、Redisのは、メモリにハードディスクからのスナップショットデータを復元します。
Redisのは、Rubyにクラスタのアプローチを与えるために、5.0バージョンの安定したバージョンをリリースし、C言語で記述された代わりのRedis-CLI方法、複雑さのクラスタを構築する方法が大幅に低減されます。Redisのクラスタのクラスタフリー中央構造、データ記憶ノードとクラスタ全体の状態、すべてのノードと他のすべてのノードのそれぞれに接続されています。
マスタモードから追加データの高い可用性を確保するために、マスタノードは、1つまたはスレーブノードの複数に対応する、マスタノードは、データアクセスを提供し、データがノードからバックアップマスターノードから引き出され、マスタノード場合ハング、あなたは、このようにハングアップしませんクラスターを確保し、選択したノードからマスターノードとして動作する必要があります。
Redisのクラスタ投票:フォールトトレランスは、投票プロセスは、現在のマスターノードがハングアップすることは、マスタノードの半分以上は、(クラスタノードタイムアウト)上マスターと通信する場合、クラスタに関与するすべてのマスターです。
集群中至少应该有奇数个节点,所以至少有三个节点,每个节点至少有一个备份节点,所以下面使用6节点(主节点、备份节点由redis-cluster集群确定)。6个节点分布在一台机器上,采用三主三从的模式。实际应用中,最好用多台机器,比如说6个节点分布到3台机器上,redis在建立集群时为自动的将主从节点进行不同机器的分配。
二、单机redis模式
下载源码redis5.0并解压编译
wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xzf redis-5.0.0.tar.gz cd redis-5.0.0 make
redis前端启动需要改成后台启动.
修改redis.conf文件,将daemonize no -> daemonize yes vim redis.conf
启动redis
/www/server/redis/src/redis-server /www/server/redis/redis.conf
查看redis是否在运行
ps aux|grep redis
现在是单机redis模式完成。
三、redis集群模式:
1.创建6个Redis配置文件
cd /usr/local/ mkdir redis_cluster //创建集群目录 cd redis_cluster mkdir 7000 7001 7002 7003 7004 7005//分别代表6个节点 其对应端口 7000 7001 7002 70037004 7005
2.复制配置文件到各个目录
cp /www/server/redis/redis.conf /usr/local/redis_cluster/7000/ cp /www/server/redis/redis.conf /usr/local/redis_cluster/7001/ cp /www/server/redis/redis.conf /usr/local/redis_cluster/7002/ cp /www/server/redis/redis.conf /usr/local/redis_cluster/7003/ cp /www/server/redis/redis.conf /usr/local/redis_cluster/7004/ cp /www/server/redis/redis.conf /usr/local/redis_cluster/7005/
3.分别修改配置文件
vim /usr/local/redis_cluster/7000/redis.conf vim /usr/local/redis_cluster/7001/redis.conf vim /usr/local/redis_cluster/7002/redis.conf vim /usr/local/redis_cluster/7003/redis.conf vim /usr/local/redis_cluster/7004/redis.conf vim /usr/local/redis_cluster/7005/redis.conf
如下
port 7000 #端口 cluster-enabled yes #启用集群模式 cluster-config-file nodes_7000.conf #集群的配置 配置文件首次启动自动生成 cluster-node-timeout 5000 #超时时间 5秒 appendonly yes #aof日志开启 它会每次写操作都记录一条日志 daemonize yes #后台运行 protected-mode no #非保护模式 pidfile /var/run/redis_7000.pid
//下面可以不写
#若设置密码,master和slave需同时配置下面两个参数:
masterauth "jijiji" #连接master的密码
requirepass "jijiji" #自己的密码
cluster-config-file,port,pidfile对应数字
4.启动节点
cd /www/server/redis/src/ ./redis-server /usr/local/redis_cluster/7000/redis.conf ./redis-server /usr/local/redis_cluster/7001/redis.conf ./redis-server /usr/local/redis_cluster/7002/redis.conf ./redis-server /usr/local/redis_cluster/7003/redis.conf ./redis-server /usr/local/redis_cluster/7004/redis.conf ./redis-server /usr/local/redis_cluster/7005/redis.conf
查看redis运行
ps aux|grep redis
5.启动集群
/www/server/redis/src/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
这里使用的命令是create,因为我们要创建一个新的集群。 该选项--cluster-replicas 1意味着我们希望每个创建的主服务器都有一个从服。
输入yes
至此,Reids5 集群搭建完成。
6.检查Reids5集群状态
可以执行redis-cli --cluster check host:port检查集群状态slots详细分配。
redis-cli --cluster info 127.0.0.1:7000
7.停止Reids5集群
(1).因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的,可以同时kill多个,然后再依次启动。
kill -9 PID PID PID
(2).redis5 提供了关闭集群的工具,修改文件: /www/server/redis/utils/
create-cluster/create-cluster
端口PROT设置为6999,NODES为6,工具会生成 7000-7005 六个节点 用于操作。
修改后,执行如下命令关闭集群:
/www/server/redis/utils/create-cluster/create-cluster stop
重新启动集群:
/www/server/redis/utils/create-cluster/create-cluster start
8.帮助信息
执行redis-cli --cluster help,查看更多帮助信息
redis-cli --cluster help