CentOS 7下安装 redis 3.0.6并配置集群的过程详解

安装依赖

[root@centos7-1 ~]# yum -y install gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel gcc-c++ automake autoconf

安装 redis

[root@centos7-1 ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
[root@centos7-1 ~]# tar xvf redis-3.0.6.tar.gz
[root@centos7-1 ~]# cd redis-3.0.6/
[root@centos7-1 redis-3.0.6]# make MALLOC=libc
[root@centos7-1 redis-3.0.6]# make install

启动 server

通过命令 redis-server 来启动 redis server。通过下面的输出信息可以看出这次启动并没有指定配置文件,可以使用命令 redis-server /path/to/redis.conf 来指定具体的配置文件启动。

[root@centos7-1 redis-3.0.6]# redis-server 
4435:C 25 Jan 11:40:48.816 # Warning: no config file specified,using the default config. In order to specify a config file use redis-server /path/to/redis.conf
4435:M 25 Jan 11:40:48.817 * Increased maximum number of open files to 10032 (it was originally set to 1024).
    _._             
   _.-``__ ''-._            
  _.-`` `. `_. ''-._   Redis 3.0.6 (00000000/0) 64 bit
 .-`` .-```. ```\/ _.,_ ''-._         
 ( ',.-` | `,)  Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|  Port: 6379
 | `-._ `._ /  _.-' |  PID: 4435
 `-._ `-._ `-./ _.-' _.-'         
 |`-._`-._ `-.__.-' _.-'_.-'|         
 | `-._`-._  _.-'_.-' |   http://redis.io  
 `-._ `-._`-.__.-'_.-' _.-'         
 |`-._`-._ `-.__.-' _.-'_.-'|         
 | `-._`-._  _.-'_.-' |         
 `-._ `-._`-.__.-'_.-' _.-'         
  `-._ `-.__.-' _.-'          
   `-._  _.-'           
    `-.__.-'            
4435:M 25 Jan 11:40:48.817 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4435:M 25 Jan 11:40:48.817 # Server started,Redis version 3.0.6
4435:M 25 Jan 11:40:48.817 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
4435:M 25 Jan 11:40:48.817 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root,and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
4435:M 25 Jan 11:40:48.817 * DB loaded from disk: 0.000 seconds
4435:M 25 Jan 11:40:48.817 * The server is now ready to accept connections on port 6379

到此,单节点的 Redis server 已经安装完毕,以下进入配置和安装集群的过程。

创建集群中的6个节点

集群配置文件

集群相关的配置文件主要修改 redis.conf 中的一下几个地方,因为都部署在一个服务器上,每个节点的端口不同。

[root@centos7-1 redis-3.0.6]$ vi redis.conf 
#修改以下地方
port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes

每个节点的配置文件

创建6个文件夹,分别表示一个 redis 节点,文件夹使用 redis 节点的端口号命名,文件里存放每个节点的配置文件。

[root@centos7-1 redis-3.0.6]# mkdir /usr/local/redis-cluster
[root@centos7-1 redis-3.0.6]# cd /usr/local/redis-cluster
[root@centos7-1 redis-cluster]# mkdir 7000 7001 7002 7003 7004 7005

拷贝 redis.conf 拷贝到6个文件夹中

[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7000
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7001
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7002
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7003
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7004
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7005

并修改每个配置中的内容为各自节点的端口,注意 port cluster-config-file 的值必须唯一。

分别启动每个节点

[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7000/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7001/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7002/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7003/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7004/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7005/redis.conf

启动完成后查看进程

[root@centos7-1 ~]# ps -ef | grep redis
root  4704 2177 0 12:12 pts/0 00:00:07 redis-server *:7000 [cluster]
root  4707 4599 0 12:12 pts/1 00:00:07 redis-server *:7001 [cluster]
root  4710 4638 0 12:12 pts/2 00:00:07 redis-server *:7002 [cluster]
root  4752 4717 0 12:12 pts/3 00:00:07 redis-server *:7003 [cluster]
root  4788 4759 0 12:12 pts/4 00:00:07 redis-server *:7004 [cluster]
root  4824 4795 0 12:13 pts/5 00:00:07 redis-server *:7005 [cluster]
root  9018 8984 0 14:08 pts/6 00:00:00 grep --color=auto redis

建立 Redis 集群

上面的步骤分别创建了6个节点,并已经启动,这里要把这6个节点加入到一个集群里面。redis 已经为我们提供了集群操作的脚本 redis-trib.rb,操作起来很简单, 继续。

安装 ruby

由于集群操作需要用到 ruby 脚本 redis-trib.rb,所以要安装 ruby 和 rubygems

[root@centos7-1 ~]# yum -y install ruby rubygems
[root@centos7-1 ~]# gem install redis --version 3.0.6
Fetching: redis-3.0.6.gem (100%)
Successfully installed redis-3.0.6
Parsing documentation for redis-3.0.6
Installing ri documentation for redis-3.0.6
1 gem installed

redis-trib.rb 是一个 ruby 脚本工具,用来建立和管理 redis 集群,因为使用比较频繁,所以拷贝脚本 redis-trib.rb /usr/local/bin/

[root@centos7-1 redis-3.0.6]$ cp src/redis-trib.rb /usr/local/bin/

创建集群

[root@centos7-1 ~]# redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000
 slots:0-5460 (5461 slots) master
M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001
 slots:5461-10922 (5462 slots) master
M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002
 slots:10923-16383 (5461 slots) master
S: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003
 replicates d900d3667196121f95bdbd68ca2317926a6950bc
S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5
S: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005
 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff
Can I set the above configuration? (type 'yes' to accept): 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 127.0.0.1:7000)
M: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000
 slots:0-5460 (5461 slots) master
M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001
 slots:5461-10922 (5462 slots) master
M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002
 slots:10923-16383 (5461 slots) master
M: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003
 slots: (0 slots) master
 replicates d900d3667196121f95bdbd68ca2317926a6950bc
M: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
 slots: (0 slots) master
 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5
M: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005
 slots: (0 slots) master
 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

以上 create 命令创建了集群,选项 Creplicas 1 表示每个 Master 都需要一个 Slave。所以结果是集群中创建了3个 Master 节点 和 3个 Slave 节点。

上面信息中 M 表示 Master 节点, S 表示 Slave 节点。

由此可以看出三组 Master Slave 关系如下:

M: d900d3667196121f95bdbd68ca2317926a6950bc -> S: d18e50ac6aff2f612fac43da74a79288aa574c87
M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff -> S: 89d792acda7f2c99c95b0d3947572647cf9edc67
M: b662853288cc89a3b78f70120d57c0a34f6a91d5 -> S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead

检测集群的状态

[root@centos7-1 ~]# redis-trib.rb check 127.0.0.1:7000
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: d900d3667196121f95bdbd68ca2317926a6950bc 127.0.0.1:7000
 slots:0-5460 (5461 slots) master
 1 additional replica(s)
M: 6dc5ee101c2432ec4c1d934d54a6a3565116bbff 127.0.0.1:7002
 slots:10923-16383 (5461 slots) master
 1 additional replica(s)
S: 89d792acda7f2c99c95b0d3947572647cf9edc67 127.0.0.1:7005
 slots: (0 slots) slave
 replicates 6dc5ee101c2432ec4c1d934d54a6a3565116bbff
S: d18e50ac6aff2f612fac43da74a79288aa574c87 127.0.0.1:7003
 slots: (0 slots) slave
 replicates d900d3667196121f95bdbd68ca2317926a6950bc
S: 85f6455e14d03ebaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
 slots: (0 slots) slave
 replicates b662853288cc89a3b78f70120d57c0a34f6a91d5
M: b662853288cc89a3b78f70120d57c0a34f6a91d5 127.0.0.1:7001
 slots:5461-10922 (5462 slots) master
 1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

测试集群

利用 redis-cli -c -p 端口号 连接集群

[root@centos7-1 ~]# redis-cli -c -p 7000
127.0.0.1:7000> get hello
(nil)
127.0.0.1:7000> set hello "hello world"
OK
127.0.0.1:7000> get hello
"hello world"
127.0.0.1:7000> get name 
-> Redirected to slot [5798] located at 127.0.0.1:7001
(nil)
127.0.0.1:7001> set name "redis server"
OK
127.0.0.1:7001> get name
"redis server"

总结

上就是关于在CentOS 7系统下安装redis 3.0.6并配置集群的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属