Répertoire d'articles
- Préface
- Un: Environnement
- Deux: processus expérimental
-
- 2.1: Déployer le logiciel Redis sur le serveur maître-esclave
- 2.2 Cluster Redis, configuration de tous les paramètres de nœud
- 2.3 Redémarrez le service, il y aura 3 fichiers supplémentaires au démarrage normal
- 2.4 Installer le logiciel ruby sur un maser
- 2.5 Les opérations spécifiques sont les suivantes:
- 2.6. Créer un cluster
- 2.7 Correspondance maître-esclave, l'avant est l'esclave, l'arrière est le maître
- 2.8 Commençons par vérifier la fonction de cluster
Préface
Un: Environnement
1.1: Environnement
Logiciel VMware Le
site officiel de Redis recommande d'utiliser 6 serveurs pour créer un cluster, 3 maîtres et 3 esclaves.
Nous utilisons 6 serveurs.
Serveur maître master1: adresse IP: 192.168100.20
Master server master2: adresse IP: 192.168.100.4
Master server master3: adresse IP : 192.168.100.3
Serveur esclave esclave1: Adresse IP: 192.168.100.5
Serveur esclave esclave2: Adresse IP: 192.168.100.6
Serveur esclave esclave3: Adresse IP: 192.168.100.12
L'un des maîtres Redis doit installer le logiciel de cluster de contrôle rvm et Ruby
1.2: Objectif expérimental
Atteindre les objectifs suivants grâce à des expériences
Déployer les services
Redis Créer des clusters
Redis Vérifier les fonctions du cluster Redis
Deux: processus expérimental
2.1: Déployer le logiciel Redis sur le serveur maître-esclave
/关闭防火墙
systemctl stop firewalld
setenforce 0
//安装
yum install -y gcc gcc-c++ make
//解压安装包,make编译
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis/ install
[root@promote redis-5.0.7]# cd utils/ #一直回车到最后只修改路径
[root@localhost utils]# ./install_server.sh
..............................................................省略...................................................
Please select the redis executable path [] /usr/local/redis/bin/redis-server //可执行文件路径,需要自行定义
...............................................................省略.....................................................................
//查看服务状态,服务已经开启
[root@promote utils]# netstat -natp | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 22999/redis-server
//创建软链接,优化服务
ln -s /usr/local/redis/bin/* /usr/local/bin/
2.2 Cluster Redis, configuration de tous les paramètres de nœud
vim /etc/redis/6379.conf
注释掉bind项 //redis中bind选项默认监听所有网卡
70 #bind 127.0.0.1 注释掉 监听网卡 !
89/ protected-mode no //关闭保护模式 !
93/ port 6379
137/ daemonize yes //以独立进程启动
833/ cluster-enabled yes /开启群集功能 !
841/ cluster-config-file nodes-6379.conf //群集名称文件设置 !
847/ cluster-node-timeout 15000 /群集超时时间设置 !
700/ appendonly yes /开启aof持久化
2.3 Redémarrez le service, il y aura 3 fichiers supplémentaires au démarrage normal
/etc/init.d/redis_6379 restart
核对下面有3个文件生成
[root@pc-2 utils]# cd /var/lib/redis/6379/
[root@pc-2 6379]# ls
appendonly.aof dump.rdb nodes-6379.conf
2.4 Installer le logiciel ruby sur un maser
2.4.1 Importer le fichier KEY
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
2.4.2 Visitez la page Web pour télécharger le fichier de script
curi -ssL https://get.rvm.io | bash -s stable //访问,下载脚本
Enregistrez le script et placez-le sur le serveur rvm-installer.sh
2.4.3 Exécuter le script
./rvm-installer.sh
2.4.4 Variables d'environnement d'exécution
source /etc/profile.d/rvm.sh
2.4.5 Lister les versions installables de Ruby
rvm list known
2.4.6 Installer la version Ruby 2.4.1
rvm install 2.4.1
2.4.7 Utiliser la version Ruby 2.4.1
rvm use 2.4.1
2.4.7 Afficher la version actuelle de Ruby 2.4.1
ruby -v
2.4.8 Afficher les versions disponibles
[root@pc-2 profile.d]# rvm list known
2.4.9 Installer la version 2.4.1
[root@pc-2 profile.d]# rvm install 2.4.1 安装 版本2.4.1
2.5 Les opérations spécifiques sont les suivantes:
[root@pc-2 opt]# ls
mongodb-linux-x86_64-3.2.1 redis-5.0.7 rh
mongodb-linux-x86_64-3.2.1.tgz redis-5.0.7.tar.gz rvm-installer.sh
[root@pc-2 opt]# chmod +x rvm-installer.sh
[root@pc-2 opt]# ./rvm-installer.sh
Downloading https://github.com/rvm/rvm/archive/master.tar.gz
Creating group 'rvm'
Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:
* First you need to add all users that will be using rvm to 'rvm' group,
and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.
* To start using RVM you need to run `source /etc/profile.d/rvm.sh`
in all your open shell windows, in rare cases you need to reopen all shell windows.
* Please do NOT forget to add your users to the rvm group.
The installer no longer auto-adds root or users to the rvm group. Admins must do this.
Also, please note that group memberships are ONLY evaluated at login time.
This means that users must log out then back in before group membership takes effect!
Thanks for installing RVM
Please consider donating to our open collective to help us maintain RVM.
Donate: https://opencollective.com/rvm/donate
[root@pc-2 opt]# cd /etc/profile.d/
[root@pc-2 profile.d]# ls
256term.csh colorgrep.sh lang.csh rvm.sh which2.csh
256term.sh colorls.csh lang.sh sh.local which2.sh
abrt-console-notification.sh colorls.sh less.csh vim.csh
bash_completion.sh csh.local less.sh vim.sh
colorgrep.csh flatpak.sh PackageKit.sh vte.sh
[root@pc-2 profile.d]# source /etc/profile.d/rvm.sh
[root@pc-2 profile.d]# rvm list known
[root@pc-2 profile.d]# rvm install 2.4.1
[root@pc-2 profile.d]# rvm use 2.4.1 使用版本
Using /usr/local/rvm/gems/ruby-2.4.1
[root@pc-2 profile.d]# ruby -v 查看当前版本
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
[root@pc-2 profile.d]# gem install redis 再次安装redis
Successfully installed redis-4.2.2
Parsing documentation for redis-4.2.2
Installing ri documentation for redis-4.2.2
Done installing documentation for redis after 1 seconds
1 gem installed
2.6. Créer un cluster
创建群集
[root@pc-2 6379]# redis-cli --cluster create 192.168.100.20:6379 192.168.100.3:6379192.168.100.4:6379 192.168.100.5:6379 192.168.100.12:6379 192.168.100.6:6379 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.100.12:6379 to 192.168.100.20:6379
Adding replica 192.168.100.6:6379 to 192.168.100.3:6379
Adding replica 192.168.100.5:6379 to 192.168.100.4:6379
M: dd9a45612ab4aa16aa7c0070e001f62b81a1f156 192.168.100.20:6379
slots:[0-5460] (5461 slots) master
M: 729184b33cae9a1509ae8457d965081ed9fffdb1 192.168.100.3:6379
slots:[5461-10922] (5462 slots) master
M: a50110d7be2ddfb2295c5a19051f5e0ee3efa714 192.168.100.4:6379
slots:[10923-16383] (5461 slots) master
S: 513bcc390744e262aad96d99c618e37480fca384 192.168.100.5:6379
replicates a50110d7be2ddfb2295c5a19051f5e0ee3efa714
S: 77faad547a60348b1dd25e99fb29c0754b054ddf 192.168.100.12:6379
replicates dd9a45612ab4aa16aa7c0070e001f62b81a1f156
S: d4efac1c688844b9bf86f6b9e91c38ab5e8b2513 192.168.100.6:6379
replicates 729184b33cae9a1509ae8457d965081ed9fffdb1
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.....
>>> Performing Cluster Check (using node 192.168.100.20:6379)
M: dd9a45612ab4aa16aa7c0070e001f62b81a1f156 192.168.100.20:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: a50110d7be2ddfb2295c5a19051f5e0ee3efa714 192.168.100.4:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 513bcc390744e262aad96d99c618e37480fca384 192.168.100.5:6379
slots: (0 slots) slave
replicates a50110d7be2ddfb2295c5a19051f5e0ee3efa714
S: 77faad547a60348b1dd25e99fb29c0754b054ddf 192.168.100.12:6379
slots: (0 slots) slave
replicates dd9a45612ab4aa16aa7c0070e001f62b81a1f156
M: 729184b33cae9a1509ae8457d965081ed9fffdb1 192.168.100.3:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: d4efac1c688844b9bf86f6b9e91c38ab5e8b2513 192.168.100.6:6379
slots: (0 slots) slave
replicates 729184b33cae9a1509ae8457d965081ed9fffdb1
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
2.7 Correspondance maître-esclave, l'avant est l'esclave, l'arrière est le maître
Adding replica 192.168.100.12:6379 to 192.168.100.20:6379
Adding replica 192.168.100.6:6379 to 192.168.100.3:6379
Adding replica 192.168.100.5:6379 to 192.168.100.4:6379
2.8 Commençons par vérifier la fonction de cluster
Connectez-vous à la base de données
[root@pc-2 6379]# redis-cli -c -h 192.168.100.20
192.168.100.20:6379> set name zhangsan
-> Redirected to slot [5798] located at 192.168.100.3:6379
OK
192.168.100.3:6379> keys *
1) "name"
192.168.100.3:6379> quit
[root@pc-2 6379]# redis-cli -c -h 192.168.100.20
192.168.100.20:6379> keys *
1) "age"
Créez un fichier et constatez que le fichier est automatiquement attribué et créé sur un autre maître
192.168.100.20:6379> set stu 77 //
-> Redirected to slot [11255] located at 192.168.100.4:6379
OK
192.168.100.4:6379> keys *
1) "stu"
192.168.100.4:6379>
Vérifiez le serveur esclave 192.168.100.5 du maître 192.168.100.4 et constatez que la valeur de clé a été automatiquement synchronisée
[root@pc-5 utils]# redis-cli -c -h 192.168.100.5
192.168.100.5:6379> keys *
(empty list or set)
192.168.100.5:6379> redis-cli -c -h 192.168.100.5
192.168.100.5:6379> keys *
1) "stu"
192.168.100.5:6379>
Ensuite, descendez le maître 192.168.100.20, testez le reste de la fonction de cluster
, créez un nom de clé sur un autre maître et trouvez qu'il a été attribué et réécrit sur le maître 192.168.100.4
[root@pc-3 6379]# redis-cli -c -h 192.168.100.3
192.168.100.3:6379> set new naz
-> Redirected to slot [15045] located at 192.168.100.4:6379
OK
192.168.100.4:6379>
Vu sur le serveur esclave de 192.168.100.4, la synchronisation est normale, il semble qu'il n'y ait pas d'impact
192.168.100.5:6379> keys *
1) "new"
2) "stu"
192.168.100.5:6379> get new
-> Redirected to slot [15045] located at 192.168.100.4:6379
"naz"
192.168.100.4:6379>
Réglez 10S pour qu'il disparaisse automatiquement
先在master 上进行设置 键名 new 10S自动消失
[root@pc-4 ~]# redis-cli -c -h 192.168.100.4
192.168.100.4:6379> keys *
1) "new"
2) "stu"
192.168.100.4:6379> expire new 10
(integer) 1
10S之后查看,果然消失了
192.168.100.4:6379> keys *
1) "stu"
192.168.100.4:6379>
在master 副本上查看同步情况,果然也没有了
[root@pc-5 ~]# redis-cli -c -h 192.168.100.5
192.168.100.5:6379> keys *
1) "stu"
192.168.100.5:6379>
Créé un nom de clé sur 192.168.100.12 à partir du précédent et a constaté qu'il sautait automatiquement vers un autre maître, indiquant qu'il était automatiquement basculé vers maître
[root @ sever ~] # redis-cli -c -h 192.168.100.12
192.168.100.12:6379> set new4 888
-> Redirigé vers l'emplacement [11274] situé à 192.168.100.4:6379
OK
192.168.100.4:6379> clés *
- "Stu"
- "Nouveau4"
Créez un fichier sur un autre maître et constatez qu'il passe automatiquement à 192.168.100.12 sur
192.168.100.3:6379> set new6 666
-> Redirigé vers l'emplacement [3144] situé à 192.168.100.12:6379
OK
192.168.100.12:6379> quit
Affichage réussi
[root @ sever ~] # redis-cli -c -h 192.168.100.12
192.168.100.12:6379> clés 8
(liste vide ou ensemble)
192.168.100.12:6379> clés *
- "Nouveau6"
- "âge"
- "Nouveau2"
192.168.100.12:6379> obtenir nouveau6
"666"