CentOS 7下安装 redis 3.0.6并配置集群的过程详解
2017-01-31 09:21
1231 查看
安装依赖
[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) supportenabled in your kernel. This will createlatency 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 port6379
到此,单节点的
Redis server已经安装完毕,以下进入配置和安装集群的过程。
创建集群中的6个节点
集群配置文件
集群相关的配置文件主要修改
redis.conf中的一下几个地方,因为都部署在一个服务器上,每个节点的端口不同。
[root@centos7-1 redis-3.0.6]$ vi redis.conf #修改以下地方 port7000 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命令创建了集群,选项
–replicas 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并配置集群的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章:
相关文章推荐
- 王高利:CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- Centos7下安装配置Redis3.0.6
- CentOS下Redis 2.2.14安装配置详解
- CentOS6.5下的Redis2.8.6和phpredis2.2.4扩展的安装过程详解
- CentOS 下 Redis 2.2.12 安装配置详解
- CentOS Linux系统下安装Redis过程和配置参数说明
- centos7下安装配置redis3.0.4
- CentOS下Redis 2.2.14安装配置详解
- centos7下安装配置redis3.0.4
- CentOS7下源码安装Redis系统服务配置
- CentOS6.6下Redis3.0.6的安装配置
- CentOS 下 Redis 2.2 安装配置详解
- CentOS7.2 安装redis 3.0.6集群
- CentOS安装Redis、PHPredis扩展及Redis配置文件详解
- CentOS下Redis 2.2.14安装配置详解
- 详解 CentOS 安装配置 Nginx 0.8.33+PHP 5.3.1+php-fpm+MySQL 全过程【转】
- CentOS下Redis 2.2.14安装配置详解
- CentOS下Redis 2.2.14安装配置详解
- CentOS Linux系统下安装Redis过程和配置参数说明