Redis主从:
两台机子做实验
主IP 192.168.10.33 ,端口号 6379
从IP 192.168.10.34, 端口号 6380
1.两台机分别下载Redis
wget https://download.redis.io/releases/redis-6.2.1.tar.gz
2.CentOS7 修改yum源为阿里源
下载阿里yum源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新yum缓存:yum clean all
3.解压到 /usr/local/
[root@do8888 local]# tar -zxvf redis-6.2.1.tar.gz -C /usr/local/
4.编译需要安装的包
yum -y install gcc gcc-c++ cmake
5.编译redis需要安装的包
yum -y install tcl-devel
6.进入 /usr/locat/redis-6.2.1 安装编译包
[root@do8888 redis-6.2.1]# pwd
/usr/locat/redis-6.2.1
安装
make PREFIX=/usr/local/redis install
7.配置文件
7.1修改主配置部分参数,根据实际情况修改。大部分参数选择默认参数即可
vim /usr/local/redis/redis.conf
bind 0.0.0.0 -::1
protected-mode yes #开启访问保护
port 6379 #配置端口号
daemonize no 修改为daemonize yes (后台程序方式运行)
pidfile /var/run/redis_6379.pid #这里指定pidfile跟监听端口一致
requirepass 123456 #配置主登录密码
查看redis.conf的配置参数
[root@redis001 ~]# egrep -v "#|^$" /usr/local/redis/redis.conf #此路径按配置文件的路径填写
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass 123456
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
7.2 从库配
bind 0.0.0.0
port 6380 #配置端口
replicaof 127.0.0.1 6379 #把本机设置为从,并加入到主机127.0.0.1 中 端口为6379
masterauth 123456 #主服务器登录密码
1 如果Redis主服务器没有配置requirepass,那么从服务器无需配置masterauth参数
2 slave是不允许写入的,在加入了slaveof 之后,实例就成为了只读的。
3 说明一下,replicaof是新版本的命令,旧版本是slaveof命令
防火墙配置
firewall-cmd --zone=public --add-port=6379/tcp --permanent #放行6379端口
firewall-cmd --reload
firewall-cmd --zone=public --add-port=6380/tcp --permanent #放行6380端口
firewall-cmd --reload
启动
启动Redis的主节点:
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
启动Redis的从节点:
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
登录
登录进主服务器查看
redis-cli -p 6379
127.0.0.1:6379> AUTH 123456 # 输入密码
127.0.0.1:6379> info replication #查看状态
#Replication
role:master #表示此为主服务器
connected_slaves:1 #有一台从服务器
slave0:ip=192.168.10.34,port=6379,state=online,offset=0,lag=0
master_failover_state:no-failover
master_replid:1d729b378e81a1f21e9d58d722fcd78ed00ae86d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0
登录进从服务器查看
redis-cli -p 6380
127.0.0.1:6380> info replication #查看状态
#Replication
role:slave #表示此是从服务器
master_host:192.168.10.33 #主服务器的IP
master_port:6379 #主服务器的端口号
master_link_status:up ##主服务器的状态
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_read_repl_offset:294
slave_repl_offset:294
测试主从是否同步
127.0.0.1:6379> set master 6379 #从主服务器写入数据
OK
127.0.0.1:6379> KEYS * #查看数据是否写入成功
1) "master"
127.0.0.1:6379> KEYS * #从服务器也查看是否写入成功
1) "master"
数据一致,表示主从配置成功
主机状态一直为down,解决方法
1 主从设置了密码,主登录时一定要记得输入密码
2 端口号开放
3 是否配置了从
4 网络是否连通

127.0.0.1:6379> SLOWLOG get 获取慢查询队列
(empty list or set)
127.0.0.1:6379> SLOWLOG len 获取慢查询队列长度
(integer) 0
127.0.0.1:6379> SLOWLOG reset 清空慢查询队列
OK
动态设置慢查询
127.0.0.1:6379> CONFIG set slowlog-max-len 1
OK
127.0.0.1:6379> CONFIG set slowlog-log-slower-than 1000
OK


2378

被折叠的 条评论
为什么被折叠?



