要做一个平台,设计要求每秒能够在一个800-1000万条记录的数据库内读写1万次。
我是选用redis集群。我的做法是按照大神龚-java提供的文档和自己加入的一些发现结合实现的。
首先就是下载redis-3.2.1.tar.gz,这个没有什么说的,去官网上找链接然后wget就可以了。
下载完成后tar -zxvf解压缩,我的习惯是解压缩之后放到/usr/local/目录下面。
到/usr/local/redis-3.2.1/目录下面,如果没有安装gcc就需要用命令yum install gcc安装一下。
gcc装好后,就在/usr/local/redis-3.2.1/目录下面编译,执行make,如果执行失败看一下错误,如果错误如下,
编译中断。
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/usr/local/redis-stable/src”
make: *** [all] 错误 2
解决办法是:
make MALLOC=libc
编译完成后执行make install。作用是将 /usr/local/redis/redis-3.2.1/src/相关redis的执行命令复制到/usr/local/bin目录下
下面就要修改配置文件了。配置文件在/usr/local/redis/redis-3.2.1/redis.conf。主要修改下面几个参数。
bind 0.0.0.0 表示不限制链接本机服务的ip地址。任何计算机都可以发起连接。这里要特别注意,我一开始以为这里绑定的ip才能访问本机的6379端口,结果一修改就启动不了redis服务,后来仔细看了一下配置文件上的说明才明白,原来这个bind的不是来访问的ip,而是本机网卡的物理地址。
daemonize yes 表示允许后台运行
cluster-enabled yes表示开启集群
cluster-node-timeout 15000表示设置超时时间
cluster-config-file node保存集群配置文件
配置好之后启动redis服务,redis-server redis.conf
[root@t91 redis-3.2.1]# ps -ef | grep redis
root      2352     1  0 09:39 ?        00:00:00 redis-server 192.168.1.91:7001 [cluster]
root      2450  2006  0 09:56 pts/0    00:00:00 grep --color=auto redis
如果用ps -ef | grep redis,打印上面内容,就表示启动成功了。
【提示:从reids 5 开始,不用再自己安装ruby了,直接执行redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006  --cluster-replicas 1语句就可以建立集群了】
下一步,因为redis cluster的配置是用的ruby脚本写得,那么就需要你最少安装了ruby (apt-get install ruby )和gem。更主要的是你还要用安装ruby所需要的redis模块
yum -y install zlib ruby rubygems
# 安装ruby的redis库

gem install redis

【补充:如果执行时报错,无法连接。可以手动下载下来安装

1、去https://rubygems.org/gems/redis/下载redis-x.x.x.gem文件

2、gem install -l /root/redis-3.3.1.gem

好了,现在可以开始创建集群了。我用的是redis-trib.rb create
redis-trib.rb create --replicas 1 192.168.1.91:7001 192.168.1.92:7002 192.168.1.93:7003 192.168.1.94:7004 192.168.1.95:7005 192.168.1.96:7006
创建过程折腾了我好久,一开始总是报错:
>>> Creating cluster
[ERR] Sorry, can't connect to node 192.168.1.91:7001
我从网上找了很多文章,大部分都是说ruby或者gem的版本太低。我尝试升级过但还是不行。也就没再研究原因。因为后来遇到大神龚-java,我完全按照他的文档操作,在一台服务器上成功的创建了6个实例的redis集群。
这时我以为已经大功告成了,没想到后面的事情真是一波三折。
既然在一台服务器上集群成功了,也应该可以在6台上实现吧。
我马上开始部署。结果创建的时候又开始报错
>>> Creating cluster
[ERR] Sorry, can't connect to node 192.168.1.91:7001
检查来检查去,发现原来是我前面提过的配置文件redis.conf里面bind 0.0.0.0的问题。经过好多次失败,才不得不耐心的看看说明,结果才明白。哎,以后真要好好看说明了。
然后执行创建,顺利链接,我正高兴呢,结果发现执行到Waiting for the cluster to join.........不向下进行了。一直是这个状态。
没说的,上网查吧。网上有位兄弟是这么说的:
创建集群时一直处于"Waiting for the cluster to join...................................."的状态
这个问题原因不知,但解决方法是在redis.conf文件中把bind 127.0.0.1本地环回口改为物理接口.
可是我已经把redis.conf的bind配置好了呀。又是一次次的尝试,结果我发现,在我创建集群后,集群成员要通过一个随机端口,向创建集群的服务器通讯。这个通讯不是redis.conf里面port。
行了,二话不说修改iptables
-A INPUT -s 192.168.1.91 -j ACCEPT
-A INPUT -s 192.168.1.92 -j ACCEPT
-A INPUT -s 192.168.1.93 -j ACCEPT
-A INPUT -s 192.168.1.94 -j ACCEPT
-A INPUT -s 192.168.1.95 -j ACCEPT
-A INPUT -s 192.168.1.96 -j ACCEPT
然后创建集群,还是老样子……这时想起了redis集群通讯方式,集群成员应该不会只与集群创建者通讯吧。于是把集群成员的iptables全都做了相同配置。
然后创建集群,大功告成!
特别感谢龚-java同志的大力帮助。
附龚-java的文档:https://github.com/gonghard/redis

我的Redis集群搭建之路相关推荐

  1. 基于虚拟机高可用redis集群搭建

    redis集群搭建 介绍 刚开始学习 redis集群搭建可能会被繁琐的配置劝退,但重复配置是我们敲代码路上最平坦的一条路了,希望晨雨和大家以后都有足够的耐心,学好技术,装好B格.本文基于redis-5 ...

  2. redis 集群搭建_Redis分布式缓存分布式集群搭建

    当你试图解决一个你不理解的问题时,复杂化就产成了.-Andy Boothe Redis集群安装部署 Redis是一个运行在内存的非关系型数据库,因为其速度快(效率高),支持数据的持久化(安全),事务操 ...

  3. redis 集群搭建_一文轻松搞懂redis集群原理及搭建与使用

    转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. ...

  4. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  5. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  6. redis集群搭建踩坑笔记

    推荐参考教程:https://blog.csdn.net/pucao_cug/article/details/69250101 错误: from /usr/lib/ruby/2.3.0/rubygem ...

  7. 系统学习redis之二——redis集群搭建

    redis单点部署: 安装命令: # cd /usr/local/ # wget http://download.redis.io/releases/redis-4.0.1.tar.gz #下载安装包 ...

  8. 转:Redis 集群搭建详细指南

    转自: https://www.cnblogs.com/mafly/p/redis_cluster.html [README] 非常棒的一篇文章,感谢作者的分享: 先有鸡还是先有蛋? 最近有朋友问了一 ...

  9. redis集群搭建与配置

    redis集群搭建与配置

最新文章

  1. 安全配置交换机端口 提高网络安全性
  2. onsubmit阻止表单提交
  3. 安卓MP3播放器开发实例(3)之进度条和歌词更新的实现
  4. java删除不,Java文件不能删除,该怎么解决
  5. Linux驱动编程 step-by-step (六) 用户地址检测 简单模块调试 以及一些杂项
  6. animation停留_这些Animation动画技巧与细节你知道么
  7. Json.NET 不再有超过120个依赖项
  8. $2a开头的是什么加密方式_为什么非对称加密比对称加密慢?
  9. Windows超级管理器绿色单文件版V9.41下载 | 电脑任务管理器损坏可予以替代 | Windows超级管理器下载
  10. 智能工厂数据采集方案
  11. 如何将webp格式转换成png?
  12. 街景影像分析入门(二)无需秘钥,抓取百度街景影像
  13. Js Switch语句
  14. 中国不是不能开发出自己的浏览器,而是没必要
  15. 前端基础_像素的处理
  16. funcode项目笔记
  17. 低年级学生必读——牛人的大学四年是这样过的
  18. Json工具Demo(二)
  19. oc总结第四讲:属性
  20. 电影《驯龙高手1》中的管理知识

热门文章

  1. 血栓清道夫机器人_血栓的清道夫终于找到了!每天吃一点,血管通畅,血栓消失了...
  2. 头歌C++面向对象 - 类的多态性与虚函数
  3. 瓦力部署系统部署java_Walle瓦力部署系统
  4. React入门(一)之基本语法(内容较多)
  5. java基础之重写父类_繁星漫天_新浪博客
  6. 计算机函数中left是什么,Left函数的作用是什么?
  7. 如何在Linux虚拟器里新建跟目录,虚拟机linux 6 增加根目录
  8. 南开大学的计算机类专业,南开大学计算机专业
  9. 【揭秘】云服务器1M带宽实际下载速度是多少?
  10. 计算机硬件信息被修改怎么还原,修改bios硬件信息方法