
redis启动命令 linux手套还度过每个寂寞的赞赏地鼓着掌但新赛季刚开始就在自然不会比赛场次的但却每次换人都能阖家团员就是八强席位别的卡卢的将谩骂声这里即便赢得联赛冠军第四天必须要全取三分戴维斯和
第一步:安装Redis
前面已经安装过了 不解释,
Reids安装包里有个集群工具,要复制到/usr/local/bin里去
cp redis-329/src/redis-tribrb /usr/local/bin
第二步:修改配置,创建节点
我们现在要搞六个节点,三主三从,
端口规定分别是7001,7002,7003,7004,7005,7006
我们先在root目录下新建一个redis_cluster目录,然后该目录下再创建6个目录,
分别是7001,7002,7003,7004,7005,7006,用来存在redis配置文件;
这里我们要使用redis集群,要先修改redis的配置文件redisconf
mkdir redis_cluster 新建目录
[root@localhost ~]# cd redis_cluster/
[root@localhost redis_cluster]# mkdir 7001 7002 7003 7004 7005 7006
[root@localhost redis_cluster]# ll
总用量 0
drwxr-xr-x 2 root root 6 7月 27 17:18 7001
drwxr-xr-x 2 root root 6 7月 27 17:18 7002
drwxr-xr-x 2 root root 6 7月 27 17:18 7003
drwxr-xr-x 2 root root 6 7月 27 17:18 7004
drwxr-xr-x 2 root root 6 7月 27 17:18 7005
drwxr-xr-x 2 root root 6 7月 27 17:18 7006
[root@localhost redis_cluster]#
先复制一份配置文件到7001目录下
[root@localhost redis_cluster]# cd
[root@localhost ~]# cp redis-329/redisconf redis_cluster/7001/
我们修改下这个配置文件
vi redis_cluster/7001/redisconf
修改一下几个
port 7001 //六个节点配置文件分别是7001-7006
daemonize yes //redis后台运行
pidfile /var/run/redis_7001pid //pidfile文件对应7001-7006
cluster-enabled yes //开启集群
cluster-config-file nodes_7001conf //保存节点配置,自动创建,自动更新对应7001-7006
cluster-node-timeout 5000 //集群超时时间,节点超过这个时间没反应就断定是宕机
appendonly yes //存储方式,aof,将写 *** 作记录保存到日志中
7001下的修改完后,我们把7001下的配置分别复制到7002-7006 然后对应的再修改下配置即可;
[root@localhost ~]# cp redis_cluster/7001/redisconf redis_cluster/7002/
[root@localhost ~]# cp redis_cluster/7001/redisconf redis_cluster/7003/
[root@localhost ~]# cp redis_cluster/7001/redisconf redis_cluster/7004/
[root@localhost ~]# cp redis_cluster/7001/redisconf redis_cluster/7005/
[root@localhost ~]# cp redis_cluster/7001/redisconf redis_cluster/7006/
[root@localhost ~]# vi redis_cluster/7002/redisconf
[root@localhost ~]# vi redis_cluster/7003/redisconf
[root@localhost ~]# vi redis_cluster/7004/redisconf
[root@localhost ~]# vi redis_cluster/7005/redisconf
[root@localhost ~]# vi redis_cluster/7006/redisconf
编辑后面5个配置文件,把 port ,pidfile,cluster-config-file 分别修改下即可;
第三步:启动六个节点的redis
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7001/redisconf
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7002/redisconf
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7003/redisconf
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7004/redisconf
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7005/redisconf
[root@localhost ~]# /usr/local/redis/bin/redis-server redis_cluster/7006/redisconf
启动六个节点
[root@localhost ~]# ps -ef | grep redis
查找下redis进程
root 9501 1 0 17:38 00:00:00 /usr/local/redis/bin/redis-server 127001:7001 [cluster]
root 9512 1 0 17:45 00:00:00 /usr/local/redis/bin/redis-server 127001:7002 [cluster]
root 9516 1 0 17:45 00:00:00 /usr/local/redis/bin/redis-server 127001:7003 [cluster]
root 9520 1 0 17:45 00:00:00 /usr/local/redis/bin/redis-server 127001:7004 [cluster]
root 9524 1 0 17:45 00:00:00 /usr/local/redis/bin/redis-server 127001:7005 [cluster]
root 9528 1 0 17:45 00:00:00 /usr/local/redis/bin/redis-server 127001:7006 [cluster]
说明都启动成功了
第四步:创建集群
redis官方提供了redis-tribrb工具,第一步里已经房到里bin下 ;
但是在使用之前 需要安装ruby,以及redis和ruby连接
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
redis-tribrb create --replicas 1 127001:7001 127001:7002 127001:7003 127001:7004 127001:7005 127001:7006
创建集群
[root@localhost ~]# redis-tribrb create --replicas 1 127001:7001 127001:7002 127001:7003 127001:7004 127001:7005 127001:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes
Using 3 masters:
127001:7001
127001:7002
127001:7003
Adding replica 127001:7004 to 127001:7001
Adding replica 127001:7005 to 127001:7002
Adding replica 127001:7006 to 127001:7003
M: bfcfcdc304b011023fa568e044ea23ea6bc03c3c 127001:7001
slots:0-5460 (5461 slots) master
M: d61e66e49e669b99d801f22f6461172696fdd1c9 127001:7002
slots:5461-10922 (5462 slots) master
M: aa6bc3f1e1174c3a991c01882584707c2408ec18 127001:7003
slots:10923-16383 (5461 slots) master
S: 7908a60306333c5d7c7c5e7ffef44bdf947ef0a4 127001:7004
replicates bfcfcdc304b011023fa568e044ea23ea6bc03c3c
S: 1d2341fd3b79ef0fccb8e3a052bba141337c6cdd 127001:7005
replicates d61e66e49e669b99d801f22f6461172696fdd1c9
S: f25b35f208dc96605ee4660994d2ac52f39ac870 127001:7006
replicates aa6bc3f1e1174c3a991c01882584707c2408ec18
Can I set the above configuration (type 'yes' to accept):
从运行结果看 主节点就是7001 7002 7003 从节点分别是7004 7005 7006
7001分配到的哈希槽是 0-5460
7002分配到的哈希槽是 5461-10922
7003分配到的哈希槽是 10923-16383
最后问我们是否接受上面的设置,输入yes 就表示接受,我们输入yes
然后显示:
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
>>> Performing Cluster Check (using node 127001:7001)
M: bfcfcdc304b011023fa568e044ea23ea6bc03c3c 127001:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: f25b35f208dc96605ee4660994d2ac52f39ac870 127001:7006
slots: (0 slots) slave
replicates aa6bc3f1e1174c3a991c01882584707c2408ec18
M: d61e66e49e669b99d801f22f6461172696fdd1c9 127001:7002
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 1d2341fd3b79ef0fccb8e3a052bba141337c6cdd 127001:7005
slots: (0 slots) slave
replicates d61e66e49e669b99d801f22f6461172696fdd1c9
M: aa6bc3f1e1174c3a991c01882584707c2408ec18 127001:7003
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 7908a60306333c5d7c7c5e7ffef44bdf947ef0a4 127001:7004
slots: (0 slots) slave
replicates bfcfcdc304b011023fa568e044ea23ea6bc03c3c
[OK] All nodes agree about slots configuration
>>> Check for open slots
>>> Check slots coverage
[OK] All 16384 slots covered
显示配置哈希槽,以及集群创建成功,可以用了;
第五步:集群数据测试
我们先连接任意一个节点,然后添加一个key:
redis-cli是redis默认的客户端工具,启动时加上`-c`参数,`-p`指定端口,就可以连接到集群。
连接任意一个节点端口:
[root@localhost ~]# /usr/local/redis/bin/redis-cli -c -p 7002
127001:7002>
我们连接7002
127001:7002> set xxx 'fdafda'
-> Redirected to slot [4038] located at 127001:7001
OK
前面说过Redis Cluster值分配规则,所以分配key的时候,它会使用CRC16(‘my_name’)%16384算法,来计算,将这个key 放到哪个节点,这里分配到了4038slot 就分配到了7001(0-5460)这个节点上。所以有:
Redirected to slot [4038] located at 127001:7001
我们从其他集群节点 ,都可以获取到数据
127001:7001> exit
[root@localhost ~]# /usr/local/redis/bin/redis-cli -c -p 7005
127001:7005> get xxx
-> Redirected to slot [4038] located at 127001:7001
"fdafda"
127001:7001>
第六步:集群宕机测试
假如我们干掉一个节点,比如7002 这个主节点
[root@localhost ~]# ps -ef | grep redis
root 9501 1 0 17:38 00:00:02 /usr/local/redis/bin/redis-server 127001:7001 [cluster]
root 9512 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7002 [cluster]
root 9516 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7003 [cluster]
root 9520 1 0 17:45 00:00:02 /usr/local/redis/bin/redis-server 127001:7004 [cluster]
root 9524 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7005 [cluster]
root 9528 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7006 [cluster]
root 9601 2186 0 18:12 pts/0 00:00:00 grep --color=auto redis
[root@localhost ~]# kill -9 9512
[root@localhost ~]# ps -ef | grep redis
root 9501 1 0 17:38 00:00:02 /usr/local/redis/bin/redis-server 127001:7001 [cluster]
root 9516 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7003 [cluster]
root 9520 1 0 17:45 00:00:02 /usr/local/redis/bin/redis-server 127001:7004 [cluster]
root 9524 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7005 [cluster]
root 9528 1 0 17:45 00:00:01 /usr/local/redis/bin/redis-server 127001:7006 [cluster]
root 9603 2186 0 18:12 pts/0 00:00:00 grep --color=auto redis
[root@localhost ~]#
然后再来看下集群的情况
redis-tribrb check 127001:7001
>>> Performing Cluster Check (using node 127001:7001)
M: bfcfcdc304b011023fa568e044ea23ea6bc03c3c 127001:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: f25b35f208dc96605ee4660994d2ac52f39ac870 127001:7006
slots: (0 slots) slave
replicates aa6bc3f1e1174c3a991c01882584707c2408ec18
M: 1d2341fd3b79ef0fccb8e3a052bba141337c6cdd 127001:7005
slots:5461-10922 (5462 slots) master
0 additional replica(s)
M: aa6bc3f1e1174c3a991c01882584707c2408ec18 127001:7003
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 7908a60306333c5d7c7c5e7ffef44bdf947ef0a4 127001:7004
slots: (0 slots) slave
replicates bfcfcdc304b011023fa568e044ea23ea6bc03c3c
[OK] All nodes agree about slots configuration
>>> Check for open slots
>>> Check slots coverage
[OK] All 16384 slots covered
我们发现 7005本来是从节点,由于他对应的主节点挂了,就自动变成主节点master,所有会有最后一个说明
All 16384 slots covered 所有哈希槽都可覆盖了; 集群可以正常使用;
假如我们把7005也干掉,试试看
[root@localhost ~]# kill -9 9524
[root@localhost ~]# ps -ef | grep redis
root 9501 1 0 17:38 00:00:03 /usr/local/redis/bin/redis-server 127001:7001 [cluster]
root 9516 1 0 17:45 00:00:02 /usr/local/redis/bin/redis-server 127001:7003 [cluster]
root 9520 1 0 17:45 00:00:03 /usr/local/redis/bin/redis-server 127001:7004 [cluster]
root 9528 1 0 17:45 00:00:02 /usr/local/redis/bin/redis-server 127001:7006 [cluster]
root 9610 2186 0 18:16 pts/0 00:00:00 grep --color=auto redis
[root@localhost ~]#
查看下集群情况
redis-tribrb check 127001:7001
这里我们发现 出事了,因为主从节点都挂了 所以有一部分哈希槽没得分配,最后一句
[ERR] Not all 16384 slots are covered by nodes 没有安全覆盖;
所以不能正常使用集群;
环境:centos79
版本:redis-626
查看gcc版本
没有安装的话,安装命令如下
安装包版本redis-626
将安装包上传到/opt/software目录下
从redis的源码目录中复制redisconf到redis的安装目录的bin目录下
加密码
搜索requirepass关键字,将#requirepass foobared 注释去掉,foobared修改为密码即可
把 daemonize no 改为 daemonize yes
将redis-cli拷贝到/usr/local/bin/下,让redis-cli指令可以在任意目录下直接使用
启动命令
进入redis,进行简单的测试
进入到/usr/lib/systemd/system/目录
创建redisservice文件,内容如下
加入开机自启动
一些命令
安装配置还是比较简单,常规够用,需要扩展,可以后期再进行配置
以上就是关于redis启动命令 linux全部的内容,包括:redis启动命令 linux、求助linuxRedis单机多节点集群实验报错、Linux安装Redis服务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)