目录
redis部署
编译安装
[root@server1 ~]# tar zxf redis-6.2.4.tar.gz
[root@server1 ~]# cd redis-6.2.4/
[root@server1 redis-6.2.4]# make
[root@server1 redis-6.2.4]# make install
[root@server1 redis-6.2.4]# cd utils/
[root@server1 utils]# vim install_server.sh
注释76~84行
运行安装脚本
./install_server.sh //一直回车
netstat -antlp|grep :6379
vim /etc/redis/6379.conf
#监听本机所有接口
bind *
重启服务
/etc/init.d/redis_6379 restart
netstat -antlp|grep :6379
redis主从复制
创建redis实例,直接从server1上拷贝编译好的redis程序,两边都要安装rsync命令
[root@server1 ~]# cd /usr/local/bin/
[root@server1 bin]# yum install -y rsync
[root@server3 ~]# yum install -y rsync
拷贝程序
[root@server1 bin]# rsync -a redis-* server3:/usr/local/bin/
[root@server1 ~]# rsync -a redis-6.2.4 server3:
[root@server3 utils]# vim /etc/redis/6379.conf
...
bind *
replicaof 192.168.36.132 6379
/etc/init.d/redis_6379 restart
其余节点依此类推
测试:
master写入数据
[root@server1 ~]# redis-cli
127.0.0.1:6379> info
127.0.0.1:6379> set name westos
查看slave端是否同步
[root@server2 ~]# redis-cli
127.0.0.1:6379> get name
"westos"
redis高可用
[root@server1 redis-6.2.4]# cp sentinel.conf /etc/redis/
[root@server1 redis-6.2.4]# cd /etc/redis/
[root@server1 redis]# vim sentinel.conf
sentinel monitor mymaster 192.168.36.132 6379 2
sentinel down-after-milliseconds mymaster 10000
拷贝配置文件
[root@server1 redis]# scp sentinel.conf server2:/etc/redis/
[root@server1 redis]# scp sentinel.conf server3:/etc/redis/
启动服务
[root@server1 redis]# redis-sentinel /etc/redis/sentinel.conf
其它主机直接启动服务,无需更改配置文件
[root@server2 ~]# redis-sentinel /etc/redis/sentinel.conf
[root@server3 ~]# redis-sentinel /etc/redis/sentinel.conf
关闭redis master
redis集群会自动切换master
当原来的master再次启动后,会以slave身份加入集群
redis集群
Redis集群是由多个Redis节点组成的分布式系统,用于提高Redis的可用性和可伸缩性。Redis集群可以分散数据存储和流量负载,从而提高系统的性能和可靠性,它使用哈希槽(HASH SLOT)分片来拆分数据
[root@server1 redis-6.2.4]# cd utils/
[root@server1 utils]# cd create-cluster/
[root@server1 create-cluster]# ./create-cluster start
./create-cluster create
查看命令帮助
redis-cli --cluster help
获取集群状态
redis-cli --cluster check 127.0.0.1:30001
连接集群,关闭redis实例,集群自动切换
redis-cli -c -p 30001 info
redis-cli -c -p 30004
127.0.0.1:30004> set name shx
关闭redis实例,集群自动切换
redis-cli -c -p 30002 shutdown
启动redis实例
./create-cluster start
redis-cli -c -p 30001 get name
数据完好
集群切换
在启动两个redis实例
vim create-cluster
./create-cluster start
添加集群节点
redis-cli --cluster add-node 127.0.0.1:30007 127.0.0.1:30001
新添加的节点没有hash槽,角色是master
添加slave节点
create-cluster]# redis-cli --cluster add-node 127.0.0.1:30008 127.0.0.1:30001 --cluster-slave --cluster-master-id d62cbc40ec3267eabc0886118446d7a49ff4e73a
迁移hash槽
redis-cli --cluster reshard 127.0.0.1:30001