linux下redis的安装和集群搭建
一、redis概述


2.1、下载和解压redis,这里安装redis-3.2.1版本的,3.0以下版本不支持集群。
[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir redis-cluster
[root@localhost local]# cd redis-cluster/
[root@localhost redis-cluster]# wget http://download.redis.io/releases/redis-3.2.1.tar.gz
[root@localhost redis-cluster]# tar -zxvf redis-3.2.1.tar.gz
2.2、编译安装
[root@localhost redis-cluster]# cd redis-3.2.1
[root@localhost redis-3.2.1]# make && make install
2.3、创建6个节点文件夹,每个文件夹我们就以每个端口号命名,方便管理
[root@localhost redis-3.2.1]# cd ..
[root@localhost redis-cluster]# mkdir 6379 6380 6381 6382 6383 6384
2.4、这里不需要复制整个redis,只复制redis.conf到对应文件夹
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6379/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6380/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6381/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6382/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6383/
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6384/
2.5、修改每个redis.conf,这里我就拿6379的来做演示,其他的一样操作就好了
[root@localhost redis-cluster]# vi 6379/redis.conf
修改的内容和下面一样(注意:先不要设置密码,否则集群搭建会出错,需要设置密码的,待集群搭建完成再进行设置):
# 0.0.0.0 代表外网能访问
bind 0.0.0.0
# 改为no,可以外界远程访问,redis 3.2 才追加的一个功能
protected-mode no
# 开启端口
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
# 设置yes,redis可以后台运行
daemonize yes
supervised no
# pid路径
pidfile /var/run/redis_6379.pid
loglevel notice
# 日志文件
logfile "./6379/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
# 方便管理
dir ./6379/
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
# 开启集群,把注释#去掉
cluster-enabled yes
# 集群的配置,配置文件首次启动自动生成
cluster-config-file nodes-6379.conf
# 请求超时,设置5秒够了
cluster-node-timeout 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
[root@localhost redis-cluster]# redis-server 6379/redis.conf && redis-server 6380/redis.conf && redis-server 6381/redis.conf && redis-server 6382/redis.conf && redis-server 6383/redis.conf && redis-server 6384/redis.conf
可以查看是否开启成功
[root@localhost redis-cluster]# ps -ef | grep redis
和下图所示一样就成功开启

三、开启集群模式
3.1、安装redis集群工具和环境
[root@localhost redis-cluster]# yum install ruby && yum install -y rubygems
还有一个,用gem这个命令来安装redis接口,gem是ruby的一个工具包
[root@localhost redis-cluster]# gem install redis
执行gem install redis后可能报错如下:
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.
原因:
yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,自己编译的ruby源码,再执行还是报错…最后google结合几篇文章解决了:
采用rvm来更新ruby:
解决方案(转http://blog.csdn.net/fengye_yulu/article/details/77628094):
(1).安装RVM:
[root@zhiwen redis-cluster]# gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
[root@zhiwen redis-cluster]# curl -L get.rvm.io | bash -s stable
[root@zhiwen redis-cluster]# find / -name rvm -print
/usr/local/rvm
/usr/local/rvm/scripts/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/bin/rvm
/usr/local/rvm/lib/rvm
[root@zhiwen redis-cluster]# source /usr/local/rvm/scripts/rvm
(2).查看rvm库中已知的ruby版本:
[root@zhiwen redis-cluster]# rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head # for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2 # JRuby
jruby-1.6[.8]
jruby-1.7[.27]
jruby[-9.1.13.0]
jruby-head # Rubinius
rbx-1[.4.3]
rbx-2.3[.0]
rbx-2.4[.1]
rbx-2[.5.8]
rbx-3[.84]
rbx-head # Opal
opal # Minimalistic ruby implementation - ISO 30170:2012
mruby-1.0.0
mruby-1.1.0
mruby-1.2.0
mruby-1[.3.0]
mruby[-head] # Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02] # Topaz
topaz # MagLev
maglev[-head]
maglev-1.0.0 # Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head # IronRuby
ironruby[-1.1.3]
ironruby-head
(3).安装一个ruby版本:
[root@zhiwen redis-cluster]# rvm install 2.4.1
(4).使用一个ruby版本
[root@zhiwen redis-cluster]# rvm use 2.4.1
Using /usr/local/rvm/gems/ruby-2.4.1
(5).设置默认版本
[root@zhiwen redis-cluster]# rvm use 2.4.1 --default
Using /usr/local/rvm/gems/ruby-2.4.1
(6).卸载一个已知版本
[root@zhiwen redis-cluster]# rvm remove 2.0.0
ruby-2.0.0-p648 - #already gone
Using /usr/local/rvm/gems/ruby-2.4.1
(7).查看ruby版本:
[root@zhiwen redis-cluster]# ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
最后在运行命令(gem install redis)即可。
3.2、启动redis集群,服务器IP填自己的服务器地址
[root@localhost redis-cluster]# redis-3.2.1/src/redis-trib.rb create --replicas 1 服务器IP:6379 服务器IP:6380 服务器IP:6381 服务器IP:6382 服务器IP:6383 服务器IP:6384
安装过程中,会出现红色框内提示,不用管,直接yes就好了,然后安装ok。

如果:
注意:iptables 放开,如果有安全组,也要放开这两个端口
四、设置redis密码,注意因为要集群,所以各节点的密码要相同
这里以6379举例,别的节点一模一样,
[root@localhost redis-cluster]# vi 6379/redis.conf
在配置文件最后添加:
masterauth 你的密码
requirepass 你的密码
然后重启redis:
[root@localhost redis-cluster]# ps -ef|grep redis
[root@localhost redis-cluster]# kill -9 进程号1 && kill -9 进程号2 && kill -9 进程号3 && kill -9 进程号4 && kill -9 进程号5 && kill -9 进程号6
[root@localhost redis-cluster]# redis-server 6379/redis.conf && redis-server 6380/redis.conf && redis-server 6381/redis.conf && redis-server 6382/redis.conf && redis-server 6383/redis.conf && redis-server 6384/redis.conf
四、关闭防火墙(如果防火墙关闭的请忽略)
我在这就忽略了, 具体自行百度linux对应你的系统版本关闭防火墙的方法。
五、测试是否搭建成功,使用RedisStudio图形界面工具分别连接6个节点,成功连接即可。
linux下redis的安装和集群搭建的更多相关文章
- Redis单机安装以及集群搭建
今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...
- linux下redis的安装及配置启动
linux下redis的安装及配置启动 标签: redisnosql 2014-10-24 14:04 19732人阅读 评论(0) 收藏 举报 分类: 数据与性能(41) wget http:/ ...
- 莫小安 Linux下Redis的安装与配置
转载自--Linux下Redis的安装与配置 redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了 memcached的不足,它 ...
- 转:Redis 3.2.1集群搭建
Redis 3.2.1集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2) ...
- Redis 5.0.5集群搭建
Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...
- RabbitMQ安装、集群搭建、概念解析
RabbitMQ安装.集群搭建.概念解析 基本概念 为什么会产生MQ 1.解耦:采用异步方式实现业务需求达到解耦的目的. 2.缓冲流量,削峰填谷: 问:为什么会有流量冲击? 答:采用"直接调 ...
- Redis 3.0.2集群搭建以及相关问题汇总
Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上(2)在线动态添加.删除redis节点,不用停止 ...
- Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)
现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...
- ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...
随机推荐
- LeetCode: Reverse Integer 解题报告
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...
- weblogic重启脚本
客户要求每周weblogic重启,每台机器上有多个weblogic实例,开始准备单个服务器实例做成sysv风格的脚本,但是实例较多,于是在满足需求和自动化重启的情况下,多个服务器实例的重启放在了一起, ...
- C++中虚函数的作用是什么?它应该怎么用呢?
虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 下面是对C++的虚函数这玩意儿的理解. 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你 ...
- Win8常用快捷键
Windows 8中常用的快捷键 Windows 键 可在开始屏幕主菜单及最后一个应用程序间循环切换 Windows 键 + C 打开“超级按钮” Windows 键 + I 打开当前程序的“设置”菜 ...
- <![CDATA[ ]]>是什么意思
全名:character data在标记CDATA下,所有的标记.实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:<![CDATA[文本内容]]>CD ...
- [Linux基础环境/软件]Linux下安装resin web服务器(涉及gcc、jdk环境部署)
由于Ubuntu自带是没有jdk和gcc编译器的,而安装resin需要C编译器和jdk的支持,而且resin本身是java写的.另外我本身的网站是zip打包的,所以linux也要安装了gcc.jdk. ...
- 【C#】使用MySql.Data.dll连接MySQL数据库
准备工作 在Visual Studio中新建一个C#的控制台应用程序. 确保后台已经启用了MySQL57服务. 在MySQL的安装路径下找到DLL,默认位置是 C:\Program Files (x8 ...
- myeclipse开发安装C++
经过若干google之后(百度就不用说了),又经过了若干尝试,终于用最简单的步骤配起来了.(一些比较旧的文章写的太繁杂了,随着各个工具的升级,搭建环境很简单了). 前言:写博客不是为了炫 ...
- Mysql5.7主主互备安装配置
一.安装说明 ======================================================================================= 环境: ...
- Extjs4.x TreeGrid Dirty 更新数据,dirty标记不会自动清除的bug
如上图所示,当修改某个属性值,成功提交后,dirty的小三角不会自动清除,这个是官方treegrid的一个bug,目前尚未解决. bug:http://www.sencha.com/forum/sho ...