Redis 集群环境的搭建
下载与解压
[root@localhost ~]# cd /usr/temp/
[root@localhost temp]# wget http://download.redis.io/releases/redis-3.2.4.tar.gz
[root@localhost temp]# tar -zxvf redis-3.2.4.tar.gz
编译与安装
[root@localhost temp]# cd redis-3.2.4
[root@localhost temp]# make && make install
以上只是演示了redis的下载安装等操作,可以忽略,注意以下用的版本是之前的redis3.0.2
将src目录下的 redis-trib.rb 复制到 /usr/local/bin 目录下
[root@localhost src]# cp redis-trib.rb /usr/local/bin/
创建 Redis 节点
首先在机器上创建一个redis_cluster 目录;
[root@localhost src]#mkdir redis_cluster
在 redis_cluster 目录下,创建名为7000、7001、7002的目录,并将 redis.conf 拷贝到这三个目录中
[root@localhost redis_cluster]# mkdir 7000 7001 7002
[root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7000/ [root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7001/
[root@localhost redis_cluster]# cp /usr/temp/redis-3.0.2/redis.conf /usr/redis/redis_cluster/7002
分别修改这三个配置文件,修改如下内容:
port 7000 //端口7000,7002,7003
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf//集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
启动各个节点
[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7000/redis.conf
[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7001/redis.conf
[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7002/redis.conf
[root@localhost bin]# ./redis-server /usr/redis/redis_cluster/7003/redis.conf(又新增了一个)
检查redis启动状况
[root@localhost bin]# ps -ef | grep redis
创建集群
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,第三步中已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成安装。
[root@localhost bin]# redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003
/usr/bin/env: ruby: No such file or directory
出错了,需要安装ruby插件
[root@localhost bin]# yum -y install ruby ruby-devel rubygems rpm-build
又出错了
[root@localhost bin]# ./redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003
/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
这次貌似是一个gem_original_require没有安装,当然这个一般是说ruby版本太老了,所以现在要么升级ruby版本,要么直接安装ruby的redis驱动。
安装时出现错误,也可以下载文件后进行离线安装,下载地址:http://rubygems.org/gems/redis/versions,选择合适的版本,然后安装:
[root@localhost bin]# cd /usr/temp/
[root@localhost temp]# gem install -l /usr/temp/redis-3.0.2.gem
接下来再去执行集群的命令:
[root@localhost bin]# ./redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003
>>> Creating cluster
Connecting to node 192.168.119.130:7000: OK
Connecting to node 192.168.119.130:7001: OK
又出错了,说明redis中有数据,需要清除一下。
[root@localhost bin]# redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003
>>> Creating cluster
Connecting to node 192.168.119.130:7000: OK
Connecting to node 192.168.119.130:7001: OK
Connecting to node 192.168.119.130:7002: OK
Connecting to node 192.168.119.130:7003: OK
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 4 nodes and 1 replicas per node.
*** At least 6 nodes are required.
又出错了,以上说明,至少需要6个redis节点。
重复以上方法,再增加2个redis节点服务
再次执行:
[root@localhost bin]# ./redis-trib.rb create --replicas 1 192.168.119.130:7000 192.168.119.130:7001 192.168.119.130:7002 192.168.119.130:7003 192.168.119.130:7004 192.168.119.130:7005
如果出现以下错误:
删除对应的nodes-xxx.conf文件,然后再逐一重启各redis服务
接下来再次执行集群的命令即可成功,过程上要输入yes:
测试
连接到redis集群
[root@localhost bin]# ./redis-cli -h 192.168.119.130 -p 7000
基本信息
192.168.119.130:7000> cluster info
节点信息
192.168.119.130:7000> cluster nodes
数据操作
[root@localhost bin]# ./redis-cli -h 192.168.119.130 -c -p 7000
192.168.119.130:7000> set name zhangsan
-> Redirected to slot [5798] located at 192.168.119.130:7001
OK
192.168.119.130:7001> get name
"zhangsan"
192.168.119.130:7001> keys *
1) "name"
服务器重启后重启redis集群服务
当linux服务重启启动后,redis集群就挂了,重新启动redis服务操作如下:
1、逐一启动之前的各个redis节点
2、再次执行redis集群命令
3、此时即可使用redis集群服务
Redis 集群环境的搭建的更多相关文章
- redis集群环境的搭建和错误分析
redis集群环境的搭建和错误分析 redis集群时,出现的几个异常问题 09 redis集群的搭建 以及遇到的问题
- Linux下Redis集群环境的搭建
一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 ...
- Redis集群环境搭建实践
0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...
- 带你自行搭建虚拟机和Redis集群环境,值得收藏!
前言: 我们看到分析 Redis 使用或原理的文章不少,但是完整搭建一套独立的 redis 集群环境的介绍,并不是很多或者说还不够详细. 那么,本文会手把手带着大家搭建一套 Redis 集群环境,Re ...
- Redis集群环境之linux搭建多机版---已完结,跟着一步一步来你就可以集群成功
上一篇踩着各种坑写了Redis集群环境之linux搭建单机版,这一篇准备就多机版集群进行搭建,主要目的一来是在上一篇的基础上进行精华提粹总结,二来是把单机版与多机版的区别进行记录. 首先软硬件环境: ...
- centos7 快速搭建redis集群环境
本文主要是记录一下快速搭建redis集群环境的方式. 环境简介:centos 7 + redis-3.2.4 本次用两个服务6个节点来搭建:192.168.116.120 和 192.168.1 ...
- redis单点、redis主从、redis哨兵sentinel,redis集群cluster配置搭建与使用
目录 redis单点.redis主从.redis哨兵 sentinel,redis集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作r ...
- 一文轻松搞懂redis集群原理及搭建与使用
今天早上由于zookeeper和redis集群不在同一虚拟机导致出了点很小错误(人为),所以这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. 笔主这里使用的是Centos7.如果 ...
- SpringBoot系列教程之Redis集群环境配置
之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和 ...
随机推荐
- jmeter自动生成测绘报告并发送邮件
步骤: 1.安装ant,添加到环境变量(windows是将bin目录添加到path.cmd命令输入 ant -v 查看版本号) (mac:brew install ant ant –version) ...
- #ifndef HeaderName_h #define HeaderName_h #endif 使用详解(转)
原文:#ifndef HeaderName_h #define HeaderName_h #endif 使用详解 想必很多人都看到过头文件中写有:#ifndef HeaderName_h ...
- hdu 3415"Max Sum of Max-K-sub-sequence"(单调队列)
传送门 题意: 给出一个有 N 个数字([-1000 , 1000],N ≤ 105)的环状序列: 让你求一个和最大的连续子序列,并记录起始点. 要求这个连续子序列的长度小于等于K,加和相同的不同区间 ...
- linux下静态库和动态库的制作
一.静态库 1.编写.c文件,在其中实现函数源代码,同时制作头文件 2.将.c文件转为.o文件 gcc -c xxx.c -o xxx.o 3.将*.o转换成库文件 a ...
- 高级组件——选项卡面板JTabbedPane
选项卡面板:JTabbedPane(标签位置,布局方式) 标签位置:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT,JTabbedPane.RI ...
- SSH整合redis和MongoDB错误笔记
由于毕设中做的是图片搜索网站,选择前端框用SSH,因为之间接触过SSH框架,略有了解,但没有深究,现在在整合redis和mongodb的过程中遇到很多错误,也是十分痛苦,只能通过百度和一步步尝试着解决 ...
- display详解
css中的display属性 display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none block inline inline-block inherit 下面,我将按照顺 ...
- PEP8规范
目录 一 代码编排 二 文档编排 三 空格使用 四 注释 五 文档描述 六 命名规范 七 编码建议 代码编排 1缩进,4个空格,不用tab键(因为可能不同系统tab的空格数不一定) 2每行最大长度79 ...
- linux 用户登陆信息查询
1.查看命令历史 每个用户都有一份命令历史记录 查看$HOME/.bash_history 或者在终端输入: history 2.last命令 查看用户登录历史 此命令会读取 /var/log/wtm ...
- zend studio报错
Problems encountered while setting project description. Cannot create linked resource '/.org.eclipse ...