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