redis服务 软件的安装 redis主从复制及切换 redis集群的搭建及管理 redis同步mysql数据

一、软件的安装

安装方式1:(脚本安装)
server1

lftp 172.25.254.250
get redis-6.2.4.tar.gz 
tar zxf redis-6.2.4.tar.gz 
cd redis-6.2.4/
make
make install
cd utils/
./install_server.sh 
vim install_server.sh 

在这里插入图片描述

./install_server.sh
cd /etc/redis/
vim 6379.conf

在这里插入图片描述

 /etc/init.d/redis_6379 restart
scp redis-6.2.4.tar.gz server2:
redis-cli
127.0.0.1:6379> set name rtt
127.0.0.1:6379> get name

安装方式2:(启用systend控制)
server2:

tar zxf redis-6.2.4.tar.gz 
cd redis-6.2.4/
make USER_SYSTEMD=yes
make install
./install_server.sh
cp systemd-redis_server.service /usr/lib/systemd/system/redis.service
cd /usr/lib/systemd/system/redis.service
vim /usr/lib/systemd/system/redis.service
mkdir /etc/redis
cd ..
 cp redis.conf /etc/redis/
cd /etc/redis/
vim redis.conf 
mkdir /var/lib/redis
systemctl daemon-reload 
systemctl start redis.service 

二、redis主从复制及切换

1、主从复制

设定 server11 主
server12 从
server13 从

server11
vim /etc/redis/6379.conf
在这里插入图片描述
server12:

vim /etc/redis/6379.conf

在这里插入图片描述
server13:

vim /etc/redis/6379.conf

在这里插入图片描述
/etc/init.d/redis_6379 restart
redis-cli ##查看主从
在这里插入图片描述

2、主从自动切换

server11:

cd redis-6.2.4
cp sentinel.conf /etc/redis/
vim /etc/redis/sentinel.conf
在这里插入图片描述
在这里插入图片描述scp /etc/redis/sentinel.conf server12:/etc/redis/sentinel.conf
scp /etc/redis/sentinel.conf server13:/etc/redis/sentinel.conf
cd /etc/redis/
redis-sentinel sentinel.conf
在这里插入图片描述

server12:

redis-sentinel sentinel.conf
在这里插入图片描述

server13:

redis-sentinel sentinel.conf
在这里插入图片描述
关闭server11
在这里插入图片描述

redis-sentinel sentinel.conf ## 11关闭后 server12 13 进行投票
在这里插入图片描述

三、redis集群的搭建及管理

1、搭建集群

 vim /etc/redis/6379.conf

在这里插入图片描述

  mkdir /usr/local/redis
  cd /usr/local/redis
  mkdir 700{1..6}
  cd 7001
   vim redis.conf

   port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

redis-server redis.conf 
ps ax
cp redis.conf ../7002/
cp redis.conf ../7003/
cp redis.conf ../7004/
cp redis.conf ../7005/
 cp redis.conf ../7006/
vim ../7002

   port 7002
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

cd ../7002
redis-server redis.conf 

...

cd ../7006
vim redis.conf 

   port 7006
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

edis-server redis.conf 
ps ax
redis-cli --cluster create 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 127.0.0.1:7006 --cluster-replicas 1    ##创建集群
redis-cli --cluster check 127.0.0.1:7001		## check 查看集群信息
主从自动切换
redis-cli -c -p 7001
127.0.0.1:7001> SHUTDOWN			##
redis-cli --cluster info 127.0.0.1:7002		## info 查看集群结构
cd ../7001
redis-server redis.conf 
redis-cli --cluster info 127.0.0.1:7001

2、添加节点

添加master端



   port 7007
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

  redis-server redis.conf 
cd ../7008
 vim redis.conf 

   port 7008
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

redis-server redis.conf 
ps ax
redis-cli --cluster check 127.0.0.1:7002
 redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001

1、指定分配(done 指定master进行分片)

 redis-cli --cluster reshard 127.0.0.1:7001					##重新分片

在这里插入图片描述

redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7002
redis-cli --cluster check 127.0.0.1:7002

2、按比例分配(all 从所有master取)

redis-cli --cluster reshard 127.0.0.1:7002

在这里插入图片描述

添加slave
redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7001 --cluster-slave --cluster-master-id 82639238ad5f37faa3c9c7975c078bde8fbd7693    ##指定7007为7008的master
redis-cli --cluster check 127.0.0.1:7002

在这里插入图片描述

3、删除节点

删除master

在这里插入图片描述
删除master前清空哈希槽

redis-cli --cluster reshard 127.0.0.1:7002		##重新分配哈希槽

在这里插入图片描述redis-cli --cluster check 127.0.0.1:7002
在这里插入图片描述

redis-cli --cluster del-node 127.0.0.1:7001 ace02308eecb6fdcced4b501d9ebc05d09353ebe			##删除master7008
删除slave
 redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7001 --cluster-slave --cluster-master-id 82639238ad5f37faa3c9c7975c078bde8fbd7693   ##将7008以slave加入7007
redis-cli --cluster del-node 127.0.0.1:7001 ace02308eecb6fdcced4b501d9ebc05d09353ebe			##删除salve 7008

四、redis+mysql 即 Redis作mysql的缓存服务器

server3:mysql

yum install -y mariadb-server
scp server4:/etc/my.cnf /etc/my.cnf
systemctl start mariadb.service 
mysql
MariaDB [(none)]> grant all on test.* to redis@'%' identified by 'westos'; 
MariaDB [(none)]> Bye
lftp 172.25.254.250
lftp 172.25.254.250:/pub/docs/redis> get test.sql
ls
 mysql < test.sql

server1: nginx php

lftp 172.25.254.250:/pub/docs/redis/
lftp 172.25.254.250:/pub/docs/redis> get test.php
lftp 172.25.254.250:/pub/docs/redis> mirror rhel7
yum install psmisc				##killall
killall redis-server
 /etc/init.d/redis_6379 stop
 chkconfig redis_ 6379   off			##取消开机自启
 
yum install -y *.rpm
systemctl daemon-reload 
cd /etc/php-fpm.d/
vim www.conf 

在这里插入图片描述

systemctl restart php-fpm 
cp test.php /usr/local/nginx/html/
cd  /usr/local/nginx/html/
vim test.php 

在这里插入图片描述

vim ../conf/nginx.conf			##注释掉87行
 nginx -s reload

server2: redis

/etc/init.d/redis_6379 restart 

网页中进行查询:
在这里插入图片描述

redis同步mysql数据

server3:
lftp 172.25.254.250
lftp 172.25.254.250:/pub/docs/redis> get lib_mysqludf_json-master.zip 
yum install -y unzip
unzip lib_mysqludf_json-master.zip
cd  lib_mysqludf_json-master/
gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so
lib_mysqludf_json.c
cp lib_mysqludf_json.so /usr/lib64/mysql/plugin/
mysql> CREATE FUNCTION json_object RETURNS STRING SONAME
'lib_mysqludf_json.so';
mysql> select * from mysql.func;
lftp 172.25.254.250
lftp 172.25.254.250:/pub/docs/redis> get gearman-mysql-udf-0.6.tar.gz 
lftp 172.25.254.250:/pub/docs/redis> mirror rhel7/
tar zxf gearman-mysql-udf-0.6.tar.gz
cd gearman-mysql-udf-0.6/
./configure --libdir=/usr/lib64/mysql/plugin/
 cd rhel7/
 yum install -y libevent-devel-2.0.21-4.el7.x86_64.rpm libgearman-1.1.12-18.el7.x86_64.rpm libgearman-devel-1.1.12-18.el7.x86_64.rpm
make
make install
mysql
MariaDB [(none)]> CREATE FUNCTION gman_do_background RETURNS STRING SONAME 'libgearman_mysql_udf.so';
MariaDB [(none)]> CREATE FUNCTION gman_servers_set RETURNS STRING SONAME 'libgearman_mysql_udf.so';
MariaDB [(none)]> select * from mysql.func;
MariaDB [(none)]> SELECT gman_servers_set('172.25.72.1:4730');
vim test.sql     ##注释掉 1、2行  开启其他命令行

在这里插入图片描述

mysql < test.sql 
 mysql
MariaDB [(none)]> show triggers from test;

server1:

cd rhel7/
systemctl start gearmand.service 
 vim worker.php 

在这里插入图片描述

netstat -antlp
nohup php worker.php &

测试
server3

MariaDB [(none)]> update test.test set name='rtt' where id=1;		##更改name

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值