当前位置: 首页 > news >正文

redis两台机器集群_redis4.0 cluster集群安装方法

a427b66896041aa6e8e90b39312a6f13.png

cluster

在node1和node2上搭建redis集群

(1)将redis-4.0.1.tar.gz包上传到一台机器上去,/usr/local目录下,解压缩:tar -zxvf redis-4.0.1.tar.gz ,重命名为redis : mv redis-4.0.1 redis

(2)安装redis需要的一些依赖:yum install -y tcl gcc zlib-devel openssl-devel

(3)进入redis录内:cd redis,执行make test

(4)进入redis录内,执行make MALLOC=libc,进行编译

(5)创建redis集群的目录

cd /opt

mkdir redis-cluster

mkdir redis-cluster/nodes-{7001,7002,7003}

(6)编辑redis.conf配置文件(以7001来举个例子,将7002和7003都编辑一下配置文件)

cd redis-cluster/nodes-7001

vi redis.conf

bind 127.0.0.1 192.168.192.151 => (127.0.0.1去掉,不能要,不然会导致redis集群创建失败)

port 7001

pidfile redis_7001.pid

loglevel notice

logfile "/opt/redis-cluster/nodes-7001/redis_7001.log"

dir /opt/redis-cluster/nodes-7001/

cluster-config-file nodes-7001.conf

daemonize yes

supervised no

appendonly yes

cluster-enabled yes

cluster-node-timeout 15000

save 900 1

save 300 10

save 60 10000

dbfilename dump.rdb

appendfilename "appendonly.aof"

appendfsync everysec

(7)在另外一台机器上,重复上面的步骤,端口号也是7001、7002、7003

cp nodes-7001/redis.conf nodes-7002,复制然后修改

e3be353abd8ccc7cb7dc854875c02bc6.png

无聊的童真

(8)安装ruby

我们的这个centos 7操作系统默认没带ruby

ruby -v(默认是老版本ruby,卸载掉)

rpm -qa | grep ruby

yum erase ruby

将ruby-2.3.4.tar.gz上传到/usr/local下,解压缩,重命名为ruby

cd ruby

./configure

make && make install

ruby -v

按照上面的步骤,两台机器都装一下ruby

(9)安装ruby-redis.gem

(如果之前没装过,那么:yum install -y zlib-devel openssl-devel)

在/usr/local/redis下,gem install redis

如果报错:

ERROR: Loading command: install (LoadError)

cannot load such file -- zlib

ERROR: While executing gem ... (NoMethodError)

undefined method `invoke_with_build_args' for nil:NilClass

cd /usr/local/ruby/ext/zlib

ruby extconf.rb

make && make install

再次gem install redis,如果再次报错:

ERROR: While executing gem ... (Gem::Exception)

Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

cd /usr/local/ruby/ext/openssl

ruby extconf.rb

将上个步骤生成的MakeFile文件中的${top_srcdir}都替换为../..

make && make install

基本就是上面两个问题,都解决了之后,就可以正常的:gem install redis

b6a039e51db226d5cd0d6786e23b5da6.png

(10)依次启动各个redis实例(以7001作为参考)

在两台机器上都依次执行下面的命令就可以了:

cd /usr/local/redis/src

./redis-server /opt/redis-cluster/nodes-7001/redis.conf

./redis-server /opt/redis-cluster/nodes-7002/redis.conf

./redis-server /opt/redis-cluster/nodes-7003/redis.conf

查看redis cluster状态

ps -ef | grep redis

因为我们现在的重点不是讲redis这个技术,其实我们是在讲基于redis的分布式锁,大家现在对redis不用太过于的纠结,我们就不去管这些东西了,

后面都会详细讲解redis技术的,我们再看

这个时候看nodes-7001里面,会自动生成一些文件,包括nodes-7001.conf(自动生成的集群配置文件),appendonly.aof,redis_7001.log,redis_7001.pid

(11)创建redis cluster集群

cd /usr/local/redis/src

./redis-trib.rb create --replicas 1 192.168.192.150:7001 192.168.192.150:7002 192.168.192.150:7003 192.168.192.151:7001 192.168.192.151:7002 192.168.192.151:7003

跟上所有的redis实例,一共是6个

redis cluster自动会将6个redis实例做成3主3从的

查看日志

cd /opt/redis-cluster/nodes-7001

cat nodes-7001/redis_7001.log

此时显示一直在等待,其实是因为redis.conf中的bind出了问题,不能bind 127.0.0.1

在两台机器上,都执行:ps -aux | grep redis,看到3个redis进程

kill -9 杀死所有的redis进程

对/opt/redis-cluster目录下的nodes-***几个文件夹内的文件,都删除,保留一个redis.conf

rm -rf redis_**

rm -rf app*

rm -rf node*

然后修改6个redis实例的redis.conf,bind里面都去掉127.0.0.1

重新启动6个redis实例

再次执行

cd /usr/local/redis/src

./redis-trib.rb create --replicas 1命令

(12)测试redis cluster

在/usr/local/redis/src目录下:

./redis-cli -c -h 192.168.192.150 -p 7001

127.0.0.1:7001> CLUSTER info

127.0.0.1:7001> CLUSTER nodes

127.0.0.1:7001> set foo bar

127.0.0.1:7003> get foo

(13)检查集群状态

./redis-trib.rb check 192.168.192.150:7001 => redis 4.0

./redis-cli --cluster check 192.168.192.150:7001 => redis 5.0

相关文章:

  • python request请求参数_python+requests——简单发送请求——以及包括参数的请求
  • spring boot 事务_体验微服务分布式事务开源框架ServiceComb的Saga TCC模型
  • python的特别注释_写好python的注释文档很容易
  • python字符串查找的四种方法_Python之字符串的遍历的4种方式
  • python监控网页报警自动配置交换机_python实现自动监控网站并发送邮件告警
  • 按键精灵和python功能对比_python 自动化对比返回结果
  • 天猫精灵 python 控制_天猫精灵的高阶玩法-控制我的电脑
  • python将list转换为迭代器代码_Python进阶内容(四)--- 迭代器(Iterator)与生成器(Generator)...
  • python路测是什么_路测是怎样的一种工作体验?
  • python 隐马尔科夫_Python的隐马尔科夫HMMLearn库的应用教学
  • 电容过大导致电压下降_关于补偿电容,你又了解多少呢?
  • 填谷式无源pfc电路_分析PFC并用于对电机控制解决
  • 怎么实现角色权限的分配_新生日记2“铁血妈妈”刘璇和“艺术慈父”王弢,你家角色怎么分配?...
  • adm 客户机禁止使用cpu_2021适合女士使用的轻薄笔记本电脑、性价比高的平板电脑推荐(送女友老婆情人节生日礼物)...
  • viterbi算法_Lyft推出一种新的实时地图匹配算法
  • 【Amaple教程】5. 插件
  • C++11: atomic 头文件
  • git 常用命令
  • gulp 教程
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript HTML DOM
  • JavaScript设计模式系列一:工厂模式
  • Javascript设计模式学习之Observer(观察者)模式
  • js对象的深浅拷贝
  • LeetCode算法系列_0891_子序列宽度之和
  • Linux快速复制或删除大量小文件
  • Python学习笔记 字符串拼接
  • Redis 懒删除(lazy free)简史
  • vue-router 实现分析
  • Webpack 4 学习01(基础配置)
  • 后端_MYSQL
  • 计算机常识 - 收藏集 - 掘金
  • 简单基于spring的redis配置(单机和集群模式)
  • 区块链分支循环
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 使用API自动生成工具优化前端工作流
  • 树莓派 - 使用须知
  • 小试R空间处理新库sf
  • 自定义函数
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #php的pecl工具#
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2015)JS ES6 必知的十个 特性
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)大型网站的系统架构
  • .CSS-hover 的解释
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter