Redis集群环境搭建
Redis集群cluster环境搭建
注意:5.0版本后集群搭建有所改变,不在使用ruby语言创建集群,所以可以跨过ruby的相关插件安装
描述:本章节主要单服务器搭建集群,在一个服务器上启动多个不同端口的redis服务,非真实环境。
真实环境下redis集群会搭建在多个物理服务器上,并非单一的服务器,但搭建方式一样。
1.redis安装
安装教程:https://www.cnblogs.com/zwcry/p/9505949.html
2.安装Redis依赖(ruby)
1)安装依赖包
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel iconv-devel
2)安装 rvm
curl -L get.rvm.io | bash -s stable
错误:

他让你尝试 gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
执行:
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
或
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
3)再次安装rvm
curl -L get.rvm.io | bash -s stable

安装成功,提示请把用户添加到rvm用户组
usermod -G rvm root
4)添加生效指令
echo "source /etc/profile.d/rvm.sh" >> ~/.bashrc && source /etc/profile.d/rvm.sh
5)安装ruby
rvm install ruby
6)安装ruby与redis接口
gem install redis
yum install -y rubygems
3.配置六个redis服务(官方建议3主3从)
1)创建集群目录
mkdir /usr/local/redis-cluster/
cd /usr/local/redis-cluster/
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006
2)创建集群第一个redis.conf
cd /usr/local/redis-cluster/
cp /usr/local/redis/redis.conf 7001
vim ./7001/redis.conf
#找到如下KEY,放开注释,修改值内容
bind 0.0.0.0#不限制访问ip和远程连接
protected-mode no#保护模式
port 7001 #修改端口号
daemonize yes#后台运行线程
pidfile /var/run/redis_7001.pid #守护进程文件
dbfilename dump7001.rdb#缓存持久存储文件名称
dir /usr/local/redis-cluster/7001/#db文件存放路径
appendonly yes#开启日志实时持久
appendfilename "appendonly7001.aof"#日志名称
cluster-enabled yes#开启集群
cluster-config-file nodes_7001.conf#集群节点文件
cluster-node-timeout 15000#集群通信超过该时长视为挂掉,单位毫秒
3)拷贝7001/redis.conf到7002~7006
cd /usr/local/redis-cluster/
cp ./7001/redis.conf ./7002/
cp ./7001/redis.conf ./7003/
cp ./7001/redis.conf ./7004/
cp ./7001/redis.conf ./7005/
cp ./7001/redis.conf ./7006/
4)修改7002~7006/redis.conf
#将7002~7006/redis.conf里的7001信息替换为7002~7006的正确信息
cd /usr/local/redis-cluster/
vim ./7002/redis.conf
:%s/7001/7002/g#所有7001的字符串替换为7002
vim ./7003/redis.conf
:%s/7001/7003/g#所有7001的字符串替换为7003
vim ./7004/redis.conf
:%s/7001/7004/g#所有7001的字符串替换为7004
vim ./7005/redis.conf
:%s/7001/7005/g#所有7001的字符串替换为7005
vim ./7006/redis.conf
:%s/7001/7006/g#所有7001的字符串替换为7006
5)启动6个服务
cd /usr/local/redis-cluster/
/usr/local/redis/src/redis-server ./7001/redis.conf
/usr/local/redis/src/redis-server ./7001/redis.conf
/usr/local/redis/src/redis-server ./7002/redis.conf
/usr/local/redis/src/redis-server ./7003/redis.conf
/usr/local/redis/src/redis-server ./7004/redis.conf
/usr/local/redis/src/redis-server ./7005/redis.conf
/usr/local/redis/src/redis-server ./7006/redis.conf
ps -ef|grep redis

4.创建与测试
1)创建集群
/usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006
注意:5.0版本后集群搭建有所改变,不在使用ruby语言创建集群,所以不再使用redis-trib.rb
请用redis-cli --cluster create 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006 --cluster-replicas 1
如果出现
/usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/local/rvm/rubies/ruby-2.3.4/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/redis/src/redis-trib.rb:25:in `<main>'

1.确保redis安装编译成功,否则重装
2.gem install redis
然后再执行 /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.159.129:7001 192.168.159.129:7002 192.168.159.129:7003 192.168.159.129:7004 192.168.159.129:7005 192.168.159.129:7006
成功如图:

2)测试
/usr/local/redis/src/redis-cli -c -p 7001 --raw#-c表示连集群 --raw中文显示
set name '丁洁'
get name

5.开机启动
mkdir /usr/local/redis-cluster/script
cd /usr/local/redis-cluster/script/
1)编写 start.sh
vim start.sh
#!/bin/sh
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
/usr/local/redis/src/redis-server /usr/local/redis-cluster//redis.conf
2)编写 stop.sh
vim stop.sh
#!/bin/sh
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
/usr/local/redis/src/redis-cli -c -p shutdown
3)编写 restart.sh
vim restart.sh
#!/bin/sh
systemctl stop redis-cluster
systemctl start redis-cluster
4)改变权限
chmod 777 ./*

5)编写自启服务
cd /usr/lib/systemd/system/
vim redis-cluster.service
添加内容如下
[Unit]
Description=redis-cluster
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/redis-cluster/script/start.sh
ExecStop=/usr/local/redis-cluster/script/stop.sh
ExecReload=/usr/local/redis-cluster/script/restart.sh
[Install]
WantedBy=multi-user.target
改变权限
chmod 777 redis-cluster.service
进程服务重加载
systemctl daemon-reload
开机启动集群
systemctl enable redis-cluster.service
启动集群
systemctl start redis-cluster.service
关闭集群
systemctl stop redis-cluster.service
重启集群
systemctl restart redis-cluster.service
Redis集群环境搭建的更多相关文章
- Redis集群环境搭建实践
0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...
- 【redis】 linux 下redis 集群环境搭建
Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...
- 2.Redis集群环境搭建
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 一.基本概念 1.redis集群是一个可以在多个节点之间进行数据共享的设施.redis集群提供了以下两个好处1 ...
- redis集群环境搭建的错误
安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...
- [心得]redis集群环境搭建的错误
安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...
- redis 集群环境搭建-redis集群管理
集群架构 (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redi ...
- redis 集群环境搭建
原理: 1,每个Redis群集的节点都需要打开两个TCP连接,由于这两个连接就需要两个端口,分别是用于为客户端提供服务的常规Redis TCP命令端口(例如6379)以及通过将10000和命令端口相加 ...
- 基于sentinel 的redis集群环境搭建
环境信息,三台机器,一台master,两台slave,每台机器上启动一个sentinel master 192.168.1.106 slave1 192.168.1.102 slave2 192.16 ...
- 带你自行搭建虚拟机和Redis集群环境,值得收藏!
前言: 我们看到分析 Redis 使用或原理的文章不少,但是完整搭建一套独立的 redis 集群环境的介绍,并不是很多或者说还不够详细. 那么,本文会手把手带着大家搭建一套 Redis 集群环境,Re ...
随机推荐
- Spring MVC属性方法名称解析器
以下示例显示如何使用Spring Web MVC框架来实现多动作控制器的属性方法名称解析器. MultiActionController类可在单个控制器中分别映射多个URL到对应的方法. 所下所示配置 ...
- 认识oracle的update更新
这两天给新同事安排了一个工作,即做一个update 的级联更新,在实际操作中发现了一个问题.就是对于Oracle的更新的语法,大部分人尤其是学过SqlServer的人在使用oracle的时候对于ora ...
- hibernate Session一级缓存 应该注意的地方
Session缓存 Hibernate的一级缓存是由Session提供的,因此它存在于Session的整个生命周期中,当程序调用save()/update()/saveOrupdate()/get() ...
- 这样就可以修改MathType公式编号格式吗
MathType公式编辑器与很多的软件都可以兼容,其中很多的用户在word上写论文的时候,都会用到MathType.特别是当公式比较多时,可以使用MathType公式编号功能来对公式进行自动编号.但公 ...
- c/c++基本数据类型大小
各个类型的变量长度由编译器来决定(实际上与操作系统位数和编译器都有关)使用时可用sizeof()得到,当前主流编译器一般是32位或64位. 类型 32位 64位 char 1 1 short int ...
- ios -特殊符号大全分享给大家,直接复制粘贴就可以使用了!
░ ▒ ▬ ♦ ◊ ◦ ♠ ♣ ▣ ۰•● ❤ ●•۰ ► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕ ▪ ▫ ☼ ♦ ♧♡♂♀♠♣♥❤☜☞☎☏⊙◎ ☺☻☼▧▨♨◐◑↔↕▪ ▒ ◊◦▣▤▥ ▦▩◘ ◈◇♬♪♩♭♪ ...
- go反射----1类型
声明:文章内容取自雨痕老师<Go语言学习笔记> 反射( reflect )让我们能在运行期探知对象的类型信息和内存结构,这从一定程度上弥补了静态语言在动态行为上的不足.同时,反射还是元编程 ...
- 如何修改vs2005/vs2010的tfs的登录名和密码 .
如何修改vs2005/vs2010的tfs的登录名和密码 . 连接TFS时,如果本机保存了用户的网络密码,不会出现用户名和密码的输入框,若要更换TFS的用户名和密码,需按以下步骤操作: 控制面板--- ...
- 如何导入和导出应用数据通过电子邮件应用程序在你的IOS
本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6657887 http://yueding920.blog.163.com/bl ...
- 初探webpack之环境配置
先感叹一句,前端的发展真是太快了,ng和bb还没怎么学好就要过时了.现在感觉react当是未来的一个大方向. 以前一直用的grunt,不过前段时间作者已经停止更新了.正好webpack风头正盛,咱也不 ...