Redis安装及集群安装

文章
林里克斯

Linux 上安装 Redis 单机 和 集群

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

redis下载

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 ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

788 0 2017-01-02


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-05-18

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 223039 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!