for前缀
华为云云耀云服务器L实例评测|在云耀云服务器L实例使用Docker搭建redis集群——三主三从集群
购买云耀云服务器 L 实例
华为云耀云服务器 L 实例是一款轻量级云服务器,开通选择实例即可立刻使用,不需要用户再对服务器进行基础配置。新用户还有专享优惠,2 核心 2G 内存 3M 带宽的服务器只要 89 元/年,可以点击华为云云耀云服务器 L 实例购买地址去购买云服务器。
购买指导可以查看上一篇文章华为云云耀云服务器 L 实例评测 |云服务器选购。
云耀云服务器 L 实例安装 docker
这一部分在上一篇文章中已经详细说明,详见华为云云耀云服务器 L 实例评测|在云耀云服务器 L 实例上安装 Docker,本文不再赘述。
测试 Docker 是否正常运行
# 查看docker版本
docker version
# 测试运行容器
docker run hello-world
看到输出 docker 版本则表示 docker 已经成功安装,此时我们可以继续运行 hello world 的容器,测试容器是否可以正常运行。
如果 Docker 正常运行,就可以看到 docker 在成功创建容器并运行容器后,输出 hello from Docker!
创建 redis 的 docker 网段
这里将 redis 集群的网段设置为 172.16.0.0/24。
docker network create --driver bridge --subnet 172.16.0.0/24 --gateway 172.16.0.1 redis-net
查看刚刚创建的 redis 网段
docker network ls
创建 redis 的配置文件
先创建 shell 脚本来生成 redis 配置文件
sudo vim redis-node-config.sh
在 redis-node-config.sh 文件中输入以下内容:
#!/bin/bash
# 配置文件存放路径
BASE_PATH=/test/redis
# 创建个数
REDIS_COUNT=6
# ip前缀
REDIS_IP=172.16.0.1
for port in $(seq 1 $REDIS_COUNT);
do
mkdir -p $BASE_PATH/node-$port/conf
mkdir -p $BASE_PATH/node-$port/data
touch $BASE_PATH/node-$port/conf/redis.conf
cat < $BASE_PATH/node-$port/conf/redis.conf
port 6379
# 生产环境中为了安全性请绑定当前机器的ip
bind 0.0.0.0
# 启动集群模式
cluster-enabled yes
cluster-config-file nodes.conf
# redis节点宕机被发现的时间
cluster-node-timeout 5000
cluster-announce-ip $REDIS_IP$port
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
赋予脚本可执行权限
sudo chmod +x redis-node-config.sh
运行脚本创建配置文件
./redis-node-config.sh
查看脚本是否成功生成文件
cd /test/redis
ll
脚本启动 redis 容器
创建启动脚本
sudo vim redis-run.sh
在 redis-run.sh 中输入以下内容:
#!/bin/bash
# 配置文件存放路径
BASE_PATH=/test/redis
# 创建个数
REDIS_COUNT=6
# ip前缀
REDIS_IP=172.16.0.1
for port in $(seq 1 $REDIS_COUNT);
do
docker run -d -p 637$port:6379 -p 1667$port:16379 \\
--name redis-$port \\
-v $BASE_PATH/node-$port/data:/data \\
-v $BASE_PATH/node-$port/conf/redis.conf:/etc/redis/redis.conf \\
--net redis-net \\
--ip $REDIS_IP$port \\
redis redis-server /etc/redis/redis.conf
done
赋予脚本可执行权限
sudo chmod +x redis-run.sh
运行脚本启动多个 redis 容器
./redis-run.sh
脚本会创建六个 redis 容器并将它们启动起来。
开始搭建 redis 集群
# 进入其中一个容器
docker exec -it redis-1 /bin/bash
# 说明:--cluster :使用cluster的方式搭建集群 --cluster-replicas 1 :一个主机有一个从机
redis-cli --cluster create 172.16.0.11:6379 172.16.0.12:6379 172.16.0.13:6379 172.16.0.14:6379 172.16.0.15:6379 172.16.0.16:6379 --cluster-replicas 1
执行过程中需要输入一次 yes
测试 redis 集群
# 进入redis-1容器
docker exec -it redis-1 /bin/bash
# -c:以集群方式启动
redis-cli -c
# 设置一个键值对
set name berbai01
这里显示是 172.16.0.12 上的 redis 处理了 set 操作。
查看集群节点
cluster nodes
到此已经成功搭建了 redis 的 3 主 3 从集群,上图中 master 为主 redis,slave 则是从 redis。-----已授权转载
","gnid":"9d8337d18a0ab405b","img_data":[{"flag":2,"img":[{"desc":"","height":"529","title":"","url":"https://p0.ssl.img.360kuai.com/t01d0d243467d03dee4.jpg","width":"1283"},{"desc":"","height":"564","title":"","url":"https://p0.ssl.img.360kuai.com/t0171e943abd7d0571e.jpg","width":"468"},{"desc":"","height":"558","title":"","url":"https://p0.ssl.img.360kuai.com/t01c424501fd2940eb7.jpg","width":"533"},{"desc":"","height":"112","title":"","url":"https://p0.ssl.img.360kuai.com/t018fe7e95df3358a2e.jpg","width":"1283"},{"desc":"","height":"282","title":"","url":"https://p0.ssl.img.360kuai.com/t01df0b31317d250dce.jpg","width":"1002"},{"desc":"","height":"394","title":"","url":"https://p0.ssl.img.360kuai.com/t013eeb453308713b8e.jpg","width":"748"},{"desc":"","height":696,"title":"","url":"https://p0.ssl.img.360kuai.com/t014e96258992d33dcb.jpg","width":1172},{"desc":"","height":858,"title":"","url":"https://p0.ssl.img.360kuai.com/t01e0e74f2a31c8e0f8.jpg","width":1280},{"desc":"","height":"272","title":"","url":"https://p0.ssl.img.360kuai.com/t014a1024a79d73c4f4.jpg","width":"908"},{"desc":"","height":"206","title":"","url":"https://p0.ssl.img.360kuai.com/t013870d4441bd2f349.jpg","width":"1283"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1699873441000,"pure":"","rawurl":"http://zm.news.so.com/bafbf4c84e13aa1f3ea5e2ebd475a541","redirect":0,"rptid":"92df448fe235fe02","rss_ext":[],"s":"t","src":"杨老师技术评论","tag":[],"title":"在云耀云服务器L实例使用Docker搭建redis集群——三主三从集群
段阀行3702为什么在下面两个程序中i++与++i的作用一样,都是输出1 2 3 4 5 6 7 8 请详细描述一下程序的运行过程 -
鲍之夏17319844841 ______ 这里就是一样的功能,只是大家都习惯用后缀自增自减变量而已. 前缀与后缀的区别在于同一个语句中;你看清楚for的格式. for(;;)这里是分号而不是逗号.虽然它们3个也逻辑上可以算是3个语句复合合成的.
段阀行3702imformation的构词法? -
鲍之夏17319844841 ______ imformation n. 信息,数据,情报;通知;消息;知识.imfor v.通知,使知道,使了解,加后缀ation,构成名词.了解的词语的构词法,能够对该词加深印象,但是想要更好的学习英语,单单这样是不行的,还是要多掌握英语学习知识,点【官方网站】,开启英语学习之旅.
段阀行3702谁知道however, but, though , although, while ,as ,since, for, 的区别 -
鲍之夏17319844841 ______ however 连接词 conj. 1. 然而,可是,不过 I feel a bit tired. However, I can hold on. 我有点累了,但我能坚持下去. 副词 ad. 1. 无论如何,不管怎样 However hot it is, he will not take off his coat. 无论多热,他也不会脱掉外衣. 2. 不管用什么方法 ...
段阀行3702for(i=1;A.elem[i]||B.elem[i];i++)什么意思啊 -
鲍之夏17319844841 ______ A.elem[i]||B.elem[i] 是一个逻辑判断,表示,如果A.elem[i]为真,或者B.elem[i]为真,则逻辑表达式的结果就为真.与别的语言一样,C#采用短路运算来提高逻辑判断的效率.比如,如果A.elem[i]为真,那么程序执行的时候就根本不会去执行B.elem[i]这一部分.因为前面为真,作为||运算,无论B.elem[i]的值是什么,表达式结果都为真.此处不能用==,因为只要A中的当前元素与B的当前元素不一样,则for循环就退出了,明显不符合要求.使用或(||)运算,确保在A列表或者B列表的当前元素不为空的时候,执行for循环体.如果两者都为空,则表示队列已经结束了,跳出循环.
段阀行3702C语言中的for语句和n++、++i 语句 -
鲍之夏17319844841 ______ n++这种形式是后缀自增1运算,表示先使用n值,然后n=n+1自增1 ++i这种形式是前缀自增1运算,表示先对i进行i=i+1自增1,然后再使用i值 如果是单独执行这样的语句,两者没有区别,如: 1 2 3 for( i=0; i<10; ++i ) printf("i=%d\n", i );//输...
段阀行3702CMD中FOR命令怎么用?请实际举个例子.
鲍之夏17319844841 ______ 在命令行窗口中,输入for /? 即可得到参数解释. FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k 会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 程序体;用逗号和/...
段阀行3702for是什么意思?
鲍之夏17319844841 ______ 循环
段阀行3702英语单词有前缀或后缀的单词,写出12种,每种12个例词!谢谢了! -
鲍之夏17319844841 ______ 1.表示否定意义的前缀 1)纯否定前缀 a-, an-, asymmetry(不对称)anhydrous(无水的) dis- dishonest, dislike in-, ig-, il, im, ir, incapable, inability, ignoble, impossible, immoral, illegal, irregular ne-, n-, none, neither, never non-, noesense neg-, ...
段阀行3702什么是前缀或后缀
鲍之夏17319844841 ______ 单词中位于词根前面的部分就是前缀.前缀,可以改变单词的意思.常见的前缀有如下几类:第一类:表示正负(或增减)的,如:un- in- im- il- ir- non- mis- mal- dis- anti- de- under- re- over-等;第二类表示尺寸的,如:semi- equi- mini- micro-...