[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
[redis]redis-cluster搭建的更多相关文章
- Redis Cluster搭建方法简介22211111
Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- Redis Cluster搭建高可用Redis服务器集群
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...
- Redis搭建(七):Redis的Cluster集群动态增删节点
一.引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cluste ...
- redis之(十六)redis的cluster集群环境的搭建,转载
最近redis已经比较火了,有关redis的详细介绍,网上有一大堆,我这里只作简单的介绍,然后跟大家一起学习Redis Cluster 3.0的搭建与使用.Redis是一款开源的.网络化的.基于内存的 ...
- redis之(十七)自己实现redis的cluster集群环境的搭建
[一]创建不同节点的配置文件和目录.并将配置文件中的port,cluster-enable,daemonize项做修改. --->port:修改成redis实例对应的端口号 --->clu ...
- 25.redis集群搭建笔记
###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码 1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...
- Windows redis集群搭建
一.Windows下Redis安装 下载地址https://github.com/dmajkic/redis/downloads,下载到的Redis支持32bit和64bit.根据自己实际情况选择,本 ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
随机推荐
- 7 函数——《Swift3.0从入门到出家
6 函数 函数就是对某个功能的封装,一个swift程序可能由多个函数组成 swift中定义函数的格式: func 函数名称(参数列表) —>函数返回值类型{ 函数体 return } 函数定义要 ...
- BroadcastReceiver用法
动态注册广播接收器 1.创建一个Receiver继承BroadcastReceiver,并重写onReceiver() 2.在Activity的OnCreate()中添加广播接收器想要接收的actio ...
- 【转】Apache Jmeter发送post请求
下面用Jmeter发送一个post请求, 对应的js代码如下: $("#register_a").click(function() { var name = $("#un ...
- datatables ajax异步分页
$('#sample_1').dataTable({ "sAjaxSource": "../table/data", // "bProcessing& ...
- oracle 11g r2 rac到单实例的dg
oracle 11g r2 rac到单实例的dg 1 主备环境说明 rac环境--primary CentOS release 6.5 (Final)hostname rac1 rac2ip 10.* ...
- maven学习2
pom.xml文件中的内 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns= ...
- shell命令getopts
#!/bin/bash set -e cmd="ls" while getopts :a:t:sn opt; do case $opt in a) cmd=$cmd" - ...
- python's twenty day for me 继承 和 super()方法
super(): 在单继承中就是单纯的寻找父类. 在多继承中就是根据子节点所在图 的mro顺序,找寻下一个类. 遇到多继承和super(): 对象.方法 1,找到这个对象对应的类. 2,将这个类的所有 ...
- 使用springboot写一个简单的测试用例
使用springboot写一个简单的测试用例 目录结构 pom <?xml version="1.0" encoding="UTF-8"?> < ...
- Flask之数据库迁徙
4.3 数据库迁移 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把 ...