[redis]-redis 通过redis-server命令建立redis主从关系

redis 通过redis-server命令建立redis主从关系

 

[root@sqlserver redis]# redis-server -h

Usage: ./redis-server [/path/to/redis.conf] [options]

       ./redis-server - (read config from stdin)

       ./redis-server -v or --version

       ./redis-server -h or --help

       ./redis-server --test-memory

 

Examples:

       ./redis-server (run the server with default conf)

       ./redis-server /etc/redis/6379.conf

       ./redis-server --port 7777

       ./redis-server --port 7777 --slaveof 127.0.0.1 8888

       ./redis-server /etc/myredis.conf --loglevel verbose

 

Sentinel mode:

       ./redis-server /etc/sentinel.conf --sentinel

 

 

----测试命令----

redis通过--port 启动一个新端口 

通过--port 启动一个新端口 只修改端口号 但是延用指定conf中的其余配置入密码.

如果不指定conf 则使用默认配置 默认免密登录. redis-server  --port 6380

如果指定配置文件 配置文件是有密码验证的 那启动的端口是需要密码认证的.

redis-server  /usr/local/redis/redis.conf --port 6380

[redis]-redis 通过redis-server命令建立redis主从关系_第1张图片

 

 

[redis]-redis 通过redis-server命令建立redis主从关系_第2张图片

 

----测试命令----

 

下面开始实践

 

之前安装redis或者redis的主从都是用的不同的配置文件 配置起来比较繁琐.

这边想尝试一下 可不可以用slave of 和port的命令

修改/usr/local/redis/redis.conf如下

daemonize yes

pidfile "./redis.pid"

port 6379

tcp-backlog 511

timeout 0

tcp-keepalive 0

loglevel notice

logfile "./redis.log"

databases 16

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename "dump.rdb"

#这里要设置成当前 否则文件会互相覆盖或者需要制定路径,就比较麻烦

dir "./"

slave-serve-stale-data yes

slave-read-only yes

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

slave-priority 100

requirepass "Hangzhou@123"

appendonly yes

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

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-entries 512

list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

#率先设置好master密码,否则slave会报认证错误的.

masterauth Hangzhou@123

 

 

在/usr/local/redis路径下创建2个文件夹

mkdir 6379 6380

[redis]-redis 通过redis-server命令建立redis主从关系_第3张图片

 

[redis]-redis 通过redis-server命令建立redis主从关系_第4张图片

看到没有dump.db

连接上客户端

验证密码功能

创建测试的key

执行bgsave 之后再查看dump.db文件

[redis]-redis 通过redis-server命令建立redis主从关系_第5张图片

发现已经生成了dump.db

[redis]-redis 通过redis-server命令建立redis主从关系_第6张图片

 

cd ../6380/

redis-server /usr/local/redis/redis.conf --port 6380

[redis]-redis 通过redis-server命令建立redis主从关系_第7张图片

连接6380 使用客户端发送的命令slaveof 127.0.0.1 6379命令建立主从

[redis]-redis 通过redis-server命令建立redis主从关系_第8张图片

日志也显示建立成功

[redis]-redis 通过redis-server命令建立redis主从关系_第9张图片

复制一份redis文件夹命名为redis-test

cp -r /usr/local/redis /usr/local/redis-test

cd /usr/local/redis-test

通过下面的命令启动6381的从端口 并设置master的端口

redis-server /usr/local/redis-test/redis.conf --port 6381 --slaveof 127.0.0.1 6379

[redis]-redis 通过redis-server命令建立redis主从关系_第10张图片

查看同步数据 6381的slave也已经成功同步数据

 

 

 

校验redis数据 可以通过以下两个命令校验repl-id和offset是否一致

/usr/local/redis/src/redis-check-rdb dump.rdb

[redis]-redis 通过redis-server命令建立redis主从关系_第11张图片

 

[redis]-redis 通过redis-server命令建立redis主从关系_第12张图片

或者

od -c dump.rdb

[redis]-redis 通过redis-server命令建立redis主从关系_第13张图片

 

 

这边没有测试当主从断开一定时间后,偏移量如果在缓冲区,这样建立的主从是增量同步,还是仍旧会使用dump.db同步.

 

可以参考

https://www.jianshu.com/p/6fe7c56e487c

你可能感兴趣的:(redis)