想跑一下Redis集群,但是没有那么多服务器,所以使用伪分布式模式,模拟一下,记录一下安装过程。

软件: redis-3.0.3.tar.gz

集群正常工作至少需要3个主节点(本示例创建6个节点,3主3从节点)

安装前提,要有ruby、rubygems环境,先安装一下:

#安装ruby
yum --nogpgcheck -y install ruby
yum --nogpgcheck -y install ruby-devel.x86_64 #安装rubygem
yum --nogpgcheck -y install rubygems #安装Ruby的redis接口gem-redis

安装Redis软件

#进入安装目录
cd /usr/local/
rm -rf redis
rm -rf redis-3.0. #解压
tar -zxvf redis-3.0..tar.gz mv redis-3.0. redis #进入源码目录
cd redis #编译安装
make && make install

创建集群的相关配置

#创建集群需要的目录
mkdir -p /usr/local/redis/cluster//
mkdir -p /usr/local/redis/cluster//
mkdir -p /usr/local/redis/cluster//
mkdir -p /usr/local/redis/cluster//
mkdir -p /usr/local/redis/cluster//
mkdir -p /usr/local/redis/cluster// #修改配置文件redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf
#cp /usr/local/redis/redis.conf /usr/local/redis/cluster//redis.conf

配置文件示例:

daemonize no
pidfile /var/run/redis.pid #修改端口
port tcp-backlog
timeout
tcp-keepalive
loglevel notice
logfile ""
databases
save
save
save
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay
repl-disable-tcp-nodelay no
slave-priority #修改为yes
appendonly yes appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit
slowlog-log-slower-than
slowlog-max-len
latency-monitor-threshold
notify-keyspace-events ""
hash-max-ziplist-entries
hash-max-ziplist-value
list-max-ziplist-entries
list-max-ziplist-value
set-max-intset-entries
zset-max-ziplist-entries
zset-max-ziplist-value
hll-sparse-max-bytes
activerehashing yes
client-output-buffer-limit normal
client-output-buffer-limit slave 256mb 64mb
client-output-buffer-limit pubsub 32mb 8mb
hz
aof-rewrite-incremental-fsync yes
#=========================新增===============================
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout
#========================================================

启动Redis实例:

#分别启动这6个redis实例(此时,节点均以Redis Cluster的方式运行,但并没有自动构建集群,因为还处于“我不认识你,你不属于我”的状态,它们每个都是孤零零的Redis节点,或者说只包含了一个节点的集群)
cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& & cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& & cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& & cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& & cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& & cd /usr/local/redis/cluster/ && redis-server redis.conf > redis.log >& &

##启动之后使用命令查看redis的启动情况
ps -ef|grep redis

创建集群,让上面的实例互相通讯

#创建集群,让上面的实例互相通讯( 表示为每个master分配一个salve)
/usr/local/redis/src/redis-trib.rb create --replicas \
127.0.0.1: \
127.0.0.1: \
127.0.0.1: \
127.0.0.1: \
127.0.0.1: \
127.0.0.1:

集群创建完成,可以使用下面的命令查看相关信息:

#查看集群目前状况
redis-cli -c -p #打印集群的信息
cluster info #列出集群当前已知的所有节点(node),以及这些节点的相关信息。
cluster nodes

输出的信息:

127.0.0.1: master -    connected -
127.0.0.1: master - connected -
127.0.0.1: myself,master - connected -
127.0.0.1: slave 2566ea486fc30c911aafaf1b71130fd24a38dba9 connected
127.0.0.1: slave edea1e50bd224c6895b1904bce79e83fa07d6017 connected
127.0.0.1: slave ab06e033698627ce0ecd4c8c645585a1ae70cc84 connected

从上面的信息可以明显看到哪些是主节点、从节点。

#将节点的配置文件保存到硬盘里

cluster saveconfig

#------------------------测试-----------------------------------
#连接端口(可以使用其他端口测试16001 -> 16006)
redis-cli -c -p 16001

127.0.0.1:16001> set key001 v001
127.0.0.1:16001> get key001

正常输出信息的话,集群建立成功,集群搭建完成。

祝好运!!

Redis集群的安装测试(伪分布模式 - 主从复制)的更多相关文章

  1. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  2. Redis 集群的安装

    Redis 集群介绍.特性.规范等Redis 集群的安装(Redis3.0.3 + CentOS6.6_x64)要让 Redis3.0 集群正常工作至少需要 3 个 Master 节点,要想实现高可用 ...

  3. Redis集群的使用测试(Jedis客户端的使用)

    Redis集群的使用测试(Jedis客户端的使用)1.Jedis客户端建议升级到最新版(当前为2.7.3),这样对3.0.x集群有比较好的支持.https://github.com/xetorthio ...

  4. redis集群离线安装

    环境准备: redis-4.0.7.tar.gz redis的安装包 Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上.) rubygems-2.7.4.tgz 和 redis-3 ...

  5. redis 集群模式安装

    概念 Redis集群提供一种方式自动将数据分布在多个Redis节点上. 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务,比如6379,还有一个额外的端口( ...

  6. Mac 下,Redis(集群)的安装和配置

    1. Redis 安装步骤 1. 到github下载redis,我下载的是3.0.4 下载地址:GitHub 2. 将下载下来的redis-3.0.4.tar.gz拷贝到 /usr/local 目录下 ...

  7. Centos7搭建redis集群及安装sentinel

    准备三个节点,系统版本为CentOS7.3 11.0.8.15 master 11.0.8.16 slave01 11.0.8.17 slave02 1.安装redis # yum install - ...

  8. Redis集群的安装和使用

  9. 离线安装redis集群

    Step0:redis集群组件需求 Step1:离线安装ruby Step2:离线安装rubygems Step3:安装rubygems的 redis api Step4:离线安装tcl 8.6 St ...

随机推荐

  1. Vue2.0实现双向绑定的原理

    一.几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定,而我所理解的双向数据绑定无非就是在单向绑定的基础上给可输入元素(input.textare等)添加了change(in ...

  2. ELM327 OBD to RS232 Interpreters

    http://elmelectronics.com/DSheets/ELM327DS.pdf

  3. Rob Pike 的 5 个编程原则

    原则 1. 你没有办法预测每个程序的运行时间,瓶颈会出现在出乎意料的地方,所以在分析瓶颈原因之前,先不要盲目猜测. 原则 2. 测试(measure).在测试之前不要优化程序,即使在测试之后也要慎重, ...

  4. SpringBoot添加支持CORS跨域访问

    原文:https://www.jianshu.com/p/c6ea21b64f6e CORS(Cross-Origin Resource Sharing)"跨域资源共享",是一个W ...

  5. 【mybatis】mybatis动态order by 的问题, 注意 只需要把#{} 改成 ${} 即可

    先说解决方案: 注意  只需要把#{} 改成 ${}  即可 再看 使用过程: Mapper.java List<IntegralGoods> findInUid(@Param(" ...

  6. mysql求交集:UNION ALL合并查询,inner join内连接查询,IN/EXISTS子查询

    两个要求交集的表(列)的结构要一致,对应的字段数,字段类型都应该相同:将两个数据的数据列用 UNION ALL 关键字合并:将上面的所有需要比较的列 GROUP BY :最后 HAVING COUNT ...

  7. Tomcat与Servlet工作流程

    什么是Tomcat? Tomcatserver是一个免费的开放源码的Web 应用server,属于轻量级应用server. 什么是Servlet? Servlet是在server上执行的小程序.,说白 ...

  8. QT 异步函数转为同步函数的方法

    在QT中,一般推荐使用异步函数.除了异步函数的非阻塞特性外,QT的Signal/Slot特性在异步函数中可以得到充分的发挥.因此,在QT中,很多API的设计都是使用非阻塞的异步函数作为API,然后执行 ...

  9. sqlmap使用帮助文档(1)

    当给sqlmap这么一个url的时候,它会: 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: ...

  10. go语言基础之不定参数的传递

    1.不定参数的传递 示例1: package main //必须有一个main包 import "fmt" func myfunc(tmp ...int) { for _, dat ...