Redis安装及集群安装
在 Linux
上安装 Redis
单机 和 集群
实验平台:CentOS 6.5
redis版本:redis-3.0.0-rc2.tar.gz
本机使用IP:10.113.128.25
目录:
一、redis的安装
1.redis需要编译环境
$ yum -y install gcc gcc-c++ ncurses-devel perl
#安装编译环境
2.官网下载redis
(下载3.0.0+ 因为3版本以前不支持集群)
https://redis.io/download
3.解压redis
软件包
$ mkdir /ane/redis #创建操作目录
$ cp redis-3.2.6.tar.gz /ane/redis/
$ cd /ane/redis/
$ tar -zxvf redis-3.0.0-rc2.tar.gz
$ cd redis-3.2.6
4.编译及安装redis
$ make && make install
#编译安装
$ make PREFIX=/data/redis install
#修改 redis 的安装路径
修改redis
配置文件
$ vim redis.conf
daemonize no
修改为
daemonize yes
#后台运行
5.启动redis
$ redis-server redis.conf
6.测试redis
是否启动
$ ps -ef | grep redis
root 6538 1 0 14:41 ? 00:00:00 redis-server *:6379
#单节点redis的端口为6379
7.优化
14447:M 29 Jan 2018 09:50:08.499 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
解决
$ sudo vim /etc/sysctl.conf
net.core.somaxconn = 511
#增加这行TCP连接队列最大值
$ sudo sysctl -p
#使其生效
14447:M 29 Jan 2018 09:50:08.499 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. 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.
解决
$ sudo vim /etc/sysctl.conf
vm.overcommit_memory = 1
#增加这行允许内存过载
$ sudo sysctl -p
#使其生效
over~
二、redis集群的部署(伪集群,真集群需要在不同的机器上部署)
1.前四步与redis
的安装一样,编译及安装后:以及群端口号命名创建集群所需目录(节点
$ mkdir -p /opt/redis_cluster/redis{6379,6380,6381,6382,6383,6384}
#创建各个节点的配置文件存放目录
这里要强调一点,redis
的集群必须大于三个主节点且是偶数
2.修改配置文件
$ vim redis.conf
daemonize no //设置redis为后台运行
port 6379 //端口号
pidfile /var/run/redis.pid //设置pidfile文件的路径
appendonly no //开启aof日志
cluster-enabled yes //去掉注释打开集群
cluster-config-file nodes-6379.conf //去掉注释# 集群配置文件
cluster-node-timeout 15000 //去掉注释# 集群请求超时时间 以毫秒为单位
修改为
daemonize yes
port 6379
pidfile /var/run/redis_6379.pid
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 3000
3.复制配置文件到刚创建的节点目录下
$ cp -p redis.conf /opt/redis_cluster/6379/
$ cp -p redis.conf /opt/redis_cluster/6380/
$ cp -p redis.conf /opt/redis_cluster/6381/
$ cp -p redis.conf /opt/redis_cluster/6382/
$ cp -p redis.conf /opt/redis_cluster/6383/
$ cp -p redis.conf /opt/redis_cluster/6384/
4.修改每个节点目录下的端口号
$ cd /opt/redis_cluster/6380/
$ vim redis.conf
port 6379 修改为 port 6380
$ cd /opt/redis_cluster/6381/
$ vim redis.conf
port 6379 修改为 port 6381
$ cd /opt/redis_cluster/6382/
$ vim redis.conf
port 6379 修改为 port 6382
$ cd /opt/redis_cluster/6383/
$ vim redis.conf
port 6379 修改为 port 6383
cd /opt/redis_cluster/6384/
vim redis.conf
port 6379 修改为 port 6384
5.分别启动这六个个实列
$ cd /opt/redis_cluster/6379/
$ redis-server redis.conf
$ cd /opt/redis_cluster/6380/
$ redis-server redis.conf
$ cd /opt/redis_cluster/6381/
$ redis-server redis.conf
$ cd /opt/redis_cluster/6382/
$ redis-server redis.conf
$ cd /opt/redis_cluster/6383/
$ redis-server redis.conf
$ cd /opt/redis_cluster/6384/
$ redis-server redis.conf
6.创建集群
$ ./redis-trib.rb create --replicas 1 10.113.128.25:6379 10.113.128.25:6380 10.113.128.25:6381 10.113.128.25:6382 10.113.128.25:6383 10.113.128.25:6384
#报错
/usr/bin/env: ruby: 没有那个文件或目录
7.安装rubygems
组件
$ yum -y install ruby
#解决报错
/usr/bin/env: ruby: 没有那个文件或目录
8.创建集群
$ ./redis-trib.rb create --replicas 1 10.113.128.25:6379 10.113.128.25:6380 10.113.128.25:6381 10.113.128.25:6382 10.113.128.25:6383 10.113.128.25:6384
#报错
$ ./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
9.安装gems
组件
$ yum -y install rubygems
解决报错
$ ./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
10.创建集群
$ ./redis-trib.rb create --replicas 1 10.113.128.25:6379 10.113.128.25:6380 10.113.128.25:6381 10.113.128.25:6382 10.113.128.25:6383 10.113.128.25:6384
#报错
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from ./redis-trib.rb:25
#这个报错是因为ruby版本太低导致的,
11.升级Ruby
$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
#yum安装的版本是1.8.7,但是redis需要的是1.9.3或者更高
12.安装rvm
#直接使用命令
$ curl -sSL https://get.rvm.io | bash -s stable
#或者
$ curl -L https://rvm.io | bash -s stable
#会失败是因为被墙了~
#源码安装
$ mkdir /usr/local/rvm
$ cd /usr/local/rvm
#添加密钥
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
#下载
$ curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
$ curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
#执行
$ gpg --verify rvm-installer.asc
#执行
$ bash rvm-installer stable
#如果gpg –keyserver命令失败,用如下命令代替:
$ curl -sSL https://rvm.io/mpapis.asc | gpg --import -
#重启一个窗口测试
$ rvm -v
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io
13.列出已知版本
$ rvm list known
14.安装ruby最新版
$ rvm install 2.4.1
15.默认使用ruby版本
$ rvm use 1.9.3 --default
$ gem install redis
Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 0 seconds
1 gem installed
8.执行redis
的创建集群命令
$ pwd
/ane/redis/redis-3.2.6/src
$ ./redis-trib.rb create --replicas 1 10.113.128.25:6379 10.113.128.25:6380 10.113.128.25:6381 10.113.128.25:6382 10.113.128.25:6383 10.113.128.25:6384
9.进入集群环境
$ ./redis-cli -c -h 10.113.128.25 -p 6379
10.113.128.25:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384 cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:13
cluster_my_epoch:13
cluster_stats_messages_sent:12927552
cluster_stats_messages_received:12928431
10.查看进程
$ ps -ef | grep redis
root 4887 1 0 Oct11 ? 03:53:46 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6379 [cluster]
root 4892 1 0 Oct11 ? 04:44:16 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6380 [cluster]
root 4897 1 0 Oct11 ? 06:50:49 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6381 [cluster]
root 4902 1 0 Oct11 ? 05:39:36 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6382 [cluster]
root 4909 1 0 Oct11 ? 05:04:43 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6383 [cluster]
root 4916 1 0 Oct11 ? 04:01:08 /ane/redis/redis-3.2.8/src/redis-server 10.113.128.25:6384 [cluster]
这是集群安装在同一宿主机上,也可以分开装保证高可用
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1346 0 2017-01-02
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-01-17
今日天气
随机推荐
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:14条
- 本站总访问量 365330 次
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...