首先,我准备了两台linux,一台准备当作master,ip是192.168.241.128,另一台是当作slave,ip是192.168.241.129。
(资料图片)
docker pull redis
可以从github上下载。新建配置环境目录和持久化数据目录。
mkdir -p /home/redis/datamkdir -p /home/redis/confmkdir -p /home/redis/log修改配置redis.conf:
logfile "/log/redis.log"dir /data将redis.conf放到mkdir -p /home/redis/conf下。
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/redis/log/redis.log:/log/redis.log -d redis redis-server /etc/redis/redis.conf --appendonly yes 创建容器后,调用redis-server启动用挂载的路径的redis.conf启动。并且开启AOF持久化。
docker ps -a查看,发现已成功启动。
如果报这个错:Can"t open the log file: Is a directory,可能得手动建一个空文件 /home/redis/log/redis.log
和上面的1,2,3步骤一样,在第二台linux服务器上创建第二个redis。稍微不同的是,在第2个步骤配置redis.conf时,要做修改。
redis.conf加上配置:
192.168.241.128 是我上面配置的第一台linux的地址,意思是第二台是第一台的slave库
slaveof 192.168.241.128 6379
依样部署好第二台redis就可以了。
在redis客户端中执行命令info replication
128(主):
> info replication# Replicationrole:masterconnected_slaves:1slave0:ip=192.168.241.129,port=6379,state=online,offset=0,lag=0master_failover_state:no-failovermaster_replid:8fade8b7a32d08413701d8816661604e773c6cd3master_replid2:0000000000000000000000000000000000000000master_repl_offset:0second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:0129(从):
> 192.168.241.129@6379 connected!> info replication# Replicationrole:slavemaster_host:192.168.241.128master_port:6379master_link_status:upmaster_last_io_seconds_ago:5master_sync_in_progress:0slave_read_repl_offset:14slave_repl_offset:14slave_priority:100slave_read_only:1replica_announced:1connected_slaves:0master_failover_state:no-failovermaster_replid:8fade8b7a32d08413701d8816661604e773c6cd3master_replid2:0000000000000000000000000000000000000000master_repl_offset:14second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:14很明显,一个role 是master,一个是slave。
验证一下数据同步:
一开始129尝试get "h" ,发现数据不存在。想要写入,因为是从节点,所以提示无法写入。
然后我们往128加入"h"->"hello", 切换到129发现这条数据已经同步过来了,接着128删除这个键,129也是跟着删除了数据。
Copyright © 2015-2022 纵横科普网版权所有 备案号:浙ICP备2022016517号-12 联系邮箱:51 46 76 11 3 @qq.com