1、概述:

  redis是一种工作在内存里no-sql的非关系型数据库,广泛应用于缓存需求,以减少大量的数据访问对数据库的压力,还很适合用来充当整个互联网架构中各级之间的cache 比如lvs的4层转发层 nginx的7层代理层

  虽然是工作在内存中,但官方也提供了数据可持续化方案,目前有三种:aof\rdb\point

  aof 就像是mysql数据库的binlog日志,将每一次写操作以追加的形式记录在其中以文件的形式刷到磁盘里

  rdb 则是一种快照机制,redis工作在内存中 rdb就是每隔一段时间,对内存中的数据做一次快照,保存在rdb文件中

  point 在redis4.0的新特性中 采用了aof-rdb的混合方案来保障数据的持久性 但是官方的说法是还不成熟

2、安装

 下载redis,我这里使用的是redis-3.0.7.tar.gz,将它放在/usr/local/src下

[root@CentOS7 redis-3.0.]# make PREFIX=/usr/local/redis install

 解压redis-3.0.7.tar.gz进入解压目录运行redis-server,但这种运行方式是以前台的方式运行,运行后就不可以再输入其它的命令,将/usr/local/src/redis-3.0.7/redis.conf里的daemonize yes改为daemonize no

 然后再以这种方式进行运行

[root@CentOS7 bin]# ./redis-server ../../src/redis-3.0.7/redis.conf 

  安装rubdy

[root@CentOS7 src]# yum install ruby rubygems -y

  安装ruby和redis的接口程序

[root@CentOS7 src]# gem install redis

遇到报错信息

Fetching: redis-4.0..gem (%)
ERROR: Error installing redis:
redis requires Ruby version >= 2.2..

那么利用rvm来安装高版本的ruby

[root@CentOS7 src]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
[root@CentOS7 src]# curl -sSL https://get.rvm.io | bash -s stable
[root@CentOS7 src]# source /usr/local/rvm/scripts/rvm
[root@CentOS7 src]# rvm install 2.4.

使用新版本ruby生效并安装ruby和redis的接口

[root@CentOS7 src]# rvm use 2.4.
Using /usr/local/rvm/gems/ruby-2.4.
[root@CentOS7 src]# rvm use 2.4. --default
Using /usr/local/rvm/gems/ruby-2.4.
[root@CentOS7 src]# ruby -v
ruby 2.4.4p296 (-- revision ) [x86_64-linux]
[root@CentOS7 src]# gem install redis
Fetching: redis-4.0..gem (%)
Successfully installed redis-4.0.
Parsing documentation for redis-4.0.
Installing ri documentation for redis-4.0.
Done installing documentation for redis after seconds
gem installed

在/usr/local下创建redis-cluster文件夹,并在其文件夹下创建7001~7006的目录

并将源码里的redis-trib.rb拷贝到此目录下

[root@CentOS7 redis-cluster]# cp /usr/local/src/redis-3.0./src/redis-trib.rb /usr/local/redis-cluster/redis-trib.rb

将之前安装redis的bin目录下的文件和配置文件分别拷贝到7001~7006,并修改配置

port
cluster-enabled yes

分别修改完成之后 ,分别至7001~7006的文件内,分另启动redis-cluster

[root@CentOS7 redis-cluster]# cd
[root@CentOS7 ]# ./redis-server redis.conf

这样就可以执行集群的创建命令了,至/usr/local/redis-cluster下

[root@CentOS7 redis-cluster]# ./redis-trib.rb create --replicas  192.168.133.159: 192.168.133.159: 192.168.133.159: 192.168.133.159: 192.168.133.159: 192.168.133.159:

其中的“1”代表的一主有一个从的节点,而集群最少要有三个节点,这样一主一从,即6台服务器了

有其它博主遇到过以下的错误信息

[ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 

解决方案为(本人没有遇到类似的错误,但感觉遇到的人不少,记录在这里一下)

解决方法是删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb 

最新文章

  1. CSS篇之DIV+CSS布局
  2. 用到的一些python包,记录下
  3. javascript实现简单的轮播图片
  4. [Linux编程]__read_mostly变量含义
  5. Tdxtreelist变色
  6. weChat聊天发送图片带有小尖角的实现
  7. 转 四大Java EE容器(Tomcat、JBoss、Resin、Glassfish)之简单比较
  8. CoreData概略
  9. Python标准库:内置函数classmethod(function)
  10. Turn the corner
  11. Python 元组内置函数
  12. angualr跨域访问配置
  13. C#关于多线程及线程同步 lock锁的应用
  14. Nginx---(main block)
  15. CF 463D Gargari and Permutations [dp]
  16. linux :故障提示:Error:No suitable device found: no device found for connection "System eth0"
  17. 深入理解JavaScript系列(37):设计模式之享元模式
  18. PIC32MZ 通过USB在线升级 -- USB CDC bootloader
  19. 【BZOJ 2324】[ZJOI2011]营救皮卡丘 费用流
  20. 小小c#算法题 - 9 - 基数排序 (Radix Sort)

热门文章

  1. python操作rabbitmq、redis
  2. 使用appassembler-maven-plugin插件生成启动脚本
  3. Hadoop体系结构之 HDFS
  4. xmldoc
  5. linux下创建与删除用户详细步骤 ***
  6. linux(centos7) 安装nginx
  7. 【转】使用Jmeter录制web脚本
  8. 3 SpringBoot与微服务
  9. 基于Nfs和Samba的Lamp环境实现
  10. Android BindService中遇到的一个小问题