最近项目里需要引入Redis,这里记录下Redis的安装。这里以centos7为例,首先我们需要确保防火墙关闭
systemctl status firewalld.service //查看防火墙状态
systemctl stop firewalld.service //关闭防火墙
systemctl disable firewalled.service //永久关闭防火墙
一、Redis基于Linux系统单机安装
1.安装gcc依赖
由于Redis是基于C语言编写,所以编译时需要GCC。 Redis6.X.X版本支持了多线程,需要GCC的版本大于4.9,但是centos7的默认版本是4.8.5。所以我们需要升级gcc
yum -y install centos-release-sc1
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++
devtoolset-9-binutils
sc1 enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
在此窗口确认GCC的版本:
gcc -v
2.下载解压文件
下载地址:https://redis.io/download/#redis-downloads
解压文件:
[root@localhost local]# tar -xzf redis-6.0.16.tar.gz
3.修改redis.conf文件
daemonize yes //更改为后台启动
#bind 127.0.0.1 //注释
protected-mode no //允许外部网络直接访问
4.启动Redis
如果src文件下没有redis.server,在redis目录执行make指令
[root@localhost src]# ./redis-server ../redis.conf //启动服务
[root@localhost src]# ./redis-cli //进入客户端
二、Redis集群搭建
(一) Redis主从安装
设置从节点有三种方式
replicaof ip port //启动前
./redis-server ../redis.conf --slaveof ip port //启动时
slaveof ip port //启动后
1.修改redis.conf文件
daemonize yes //更改为后台启动
#bind 127.0.0.1 //注释
protected-mode no //允许外部网络直接访问
replicaof 192.168.8.129 6379 //添加是哪台机器的从节点 主节点ip+port
2.启动Redis
如果src文件下没有redis.server,在redis目录执行make指令
[root@localhost src]# ./redis-server ../redis.conf //启动服务
[root@localhost src]# ./redis-cli //进入客户端
3.查看节点信息
我们查看是否配置了主节点配置
127.0.0.1:6379> config get replicaof
1)"replicaof"
2) "192.168.8.129 6379"
查看从节点信息
127.0.0.1:6379> info replication
# Replication
role:slave //角色
master_host:192.168.8.129 //主节点ip
master_port:6379 //主节点port
master_link_status:up //连接状态 up是正常同步连接状态down表示复制端口
master_last_io_seconds_ago:1 //主库多少秒没有发送数据到从库 0-10
master_sync_in_progress:0 //是否正在跟主服务同步
slave_repl_offset:163 //从节点偏移量
slave_priority:100 //选举时成为主节点的优先级 越大优先级越高 0不会成为主节点
slave_read_only:1 //是否为只读从库
connected_slaves:0 //连接的从库实例
master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //master启动时生成的40位16进制的随机字符串,用来标识master节点
master_replid2:0000000000000000000000000000000000000000 //slave切换master之后,会生成了自己的master标识,之前的master节点的标识存到了master_replid2的位置
master_repl_offset:163 //已写入偏移量
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576 //复制积压的缓存区大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:163
查看主节点信息
127.0.0.1:6379> info replication
# Replication
role:master //角色
connected_slaves:1 //从节点数量
slave0:ip=192.168.8.127,port=6379,state=online,offset=78899,lag=1 //从节点的信息 状态 偏移量
master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //master启动时生成的40位16进制的随机字符串,用来标识master节点
master_replid2:0000000000000000000000000000000000000000 //slave切换master之后,会生成了自己的master标识,之前的master节点的标识存到了master_replid2的位置
master_repl_offset:78899 //master已写入偏移量
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576 //复制积压的缓存区大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:163
repl_backlog_size:1048576 //缓冲区大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:78899 //缓冲区的数据已有大小(是个环形,跟RedoLog一样会覆盖)
4.解除主从关系
127.0.0.1:6379> slaveof no one
OK
(二) Redis哨兵安装
1.修改sentinel.conf文件
port 26379 //sentinel服务端口
daemonize yes //是否后台启动
sentinel monitor mymaster 192.168.8.129 6379 2 //sentinel monitor <master-group-name>主节点名称 <ip> <port> <quorum>认为master不可用的sentinel数量 如果要监控多套master,配置多个即可
sentinel down-after-milliseconds mymaster 30000 //30s后联系不到认为关闭
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
2.启动sentinel服务
[root@localhost src]# ./redis-sentinel ../sentinel.conf //启动sentinel服务
3.连接sentinel服务
[root@localhost src]# ./redis-cli -p 26379 127.0.0.1:26379>
4.查看master的信息
127.0.0.1:26379> sentinel master mymaster //mymaster为自定义名称
1) "name"
2) "mymaster"
3) "ip"
4) "192.168.8.129"
5) "port"
6) "6379"
7) "runid"