###Redis集群###
0.准备
软件:
redis-3.0.0.gem
redis-3.0.0.tar.gz#源码
1.安装ruby环境
redis基于ruby槽位计算,hash算法技术,key是用hash存在的,key分布在数组的槽位内(16384个槽位),下标从0到2^N,并且采用链表解决冲突。
yum install -y ruby
yum install -y rubygems
2.安装ruby和redis的接口程序
cp redis-3.0.0.gem /usr/local/
gem install redis-3.0.0.gem
2.安装到opt下面
cd /opt/
mkdir redis-cluster
cd /home
tar -zxvf redis-3.0.0.tar.gz -C /opt/redis-cluster
创建6个目录7001--7006,redis集群最低6台机器,搭建伪集群需要创建6个redis实例,以端口区分;redis集群要求最低3个主节点,所以3个master,3个slave一共最少6个redis实例.
mkdir 7001 7002 7003 7004 7005 7006
修改配置文件夹redis.conf
pidfile /opt/redis-cluster/7001/redis.pid[是不是非必须需要测]
port 7001[同一台机器伪集群必须改]
daemonize yes
cluster-enabled yes[必须]
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
bind 192.168.10.100[每个redis改成自己的ip]
cp redis.conf ../7001
cp redis.conf ../7002
cp redis.conf ../7003
cp redis.conf ../7004
cp redis.conf ../7005
cp redis.conf ../7006
修改端口号:
cd ../
vim 7001/redis.conf
vim 7002/redis.conf
vim 7003/redis.conf
vim 7004/redis.conf
vim 7005/redis.conf
vim 7006/redis.conf
#编译源码
cd /opt/redis-cluster/redis-3.0.0
make && make install
复制生成的可执行文件
cd src
cp redis-server/opt/redis-cluster/7001#redis服务端
cp redis-server/opt/redis-cluster/7002
cp redis-server/opt/redis-cluster/7003
cp redis-server/opt/redis-cluster/7004
cp redis-server/opt/redis-cluster/7005
cp redis-server/opt/redis-cluster/7006
cp redis-cli /opt/redis-cluster#控制台客户端工具
cp redis-trib.rb/opt/redis-cluster#初始化集群可执行文件
#3.启动集群
先启动6台redis实例
进入7001 7002 7003 7004 7005 7006
分别执行
./redis-server ./redis.conf
ps -ef | grep redis
6个redis启动成功
初始化集群,把6台机器纳入集群
cd /opt/redis-cluster
./redis-trib.rb create --replicas 1 192.168.10.100:7001 192.168.10.100:7002 192.168.10.100:7003 192.168.10.100:7004 192.168.10.100:7005 192.168.10.100:7006
到此redis集群搭建启动成功.
#连接redis任意一台
./redis-cli -c -p 7001 -h ip
#查看集群信息
>cluster info
>cluster nodes
#杀死所有redis进程
kill -9 $(ps -ef|grep -E 'redis'|grep -v grep|awk '{print $2}')
有关配置文件参数说明:参考分类笔记-->NoSQL-->Redis-->Redis配置文件参数说明
集群动态扩展:
客户端连接redis:
./redis-cli -p 7001 -h ip
cluster info
quit
添加节点:
主节点
./redis-trib.rb add-node 192.168.10.100:7001 192.168.10.100:7007一次添加一台机器
从节点
./redis-trib.rb add-node --slave --master-id
[OK] New node added correctly.
删除主节点
./redis-trib.rb del-node 192.168.10.100:7001 192.168.10.100: 7007
cluster nodes查看集群节点信息
./redis-cli -c -p 7001
分配槽位:
./redis-trib.rb reshard 192.168.10.100:7001
500
8ebe5fe6f79a343319201066c962f55327f1037a
all
./redis-cli -c -p 7001
cluster nodes
看到:ted 0-165 5461-5627 10923-11088分配成功
添加从节点:
./redis-trib.rb add-node --slave --master-id 8ebe5fe6f79a343319201066c962f55327f1037a 192.168.10.100:7007 192.168.10.100:7008
- Redis集群搭建笔记
系统为CentOS7,创建9001-9006 6个文件夹,复制 redis-server redis.conf 文件到6个新文件夹下 redis.conf文件配置如下: port 9001 daemo ...
- redis集群搭建踩坑笔记
推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygem ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- Redis集群搭建与简单使用【转】
Redis集群搭建与简单使用 安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都 ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- [转载] Redis集群搭建最佳实践
转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
随机推荐
- Windows Server 2008 R2安装子域控制器
一.实验网络拓扑图: 二.实验说明: 子域控制器安装前需要先把主域控制器安装好,然后子域控制器的DNS先指向主域控制器的IP地址 192.168.10.30,主域控制器委派DNS给子域控制器后再把子域 ...
- 查看https是否支持ATS
nscurl --ats-diagnostics --verbose https://我的域名
- iOS 如何在Label中显示html的文本
if (self.messageModel) { NSString * htmlString = self.messageModel.contentText; NSAttributedString * ...
- 关于针对class自定义new操作符失败的函数处理
#include <iostream> #include <new> using namespace std; class CSaveCurHandler //用于管理new_ ...
- 详解clientHeight、offsetHeight、scrollHeight
关于clientHeight.offsetHeight.scrollHeight window.screen.availWidth 返回当前屏幕宽度(空白空间) window.screen.av ...
- paper 128:奇异值分解(SVD) --- 线性变换几何意义[转]
PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真 ...
- github 删除仓库 repository
1.点开想要删除的仓库 2点击setting 3.拉到最下面 4.点击 Delete this repository 5.输入想删除仓库的名字 点击
- 【转】Python练习,网络爬虫框架Scrapy
一.概述 下图显示了Scrapy的大体架构,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示).下面就来一个个解释每个组件的作用及数据的处理过程. 二.组件 1.Scrapy Engine(S ...
- ios异常错误
1,mach_msg_trap处异常 http://www.jianshu.com/p/2b3f58c61d7d 在lldb下敲入bt (lldb) bt
- msql,触发器无事物回滚,插入之前满足条件再插入
很少写mysql的触发器和存储过程,由于需要需要做一个很小的判断,要用到触发器,要达到的效果就是,插入之前判断是否满足条件如果不满足就不插入 如果用sqlserver 或者orcale 就很简单,按s ...