百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Linux单例Redis和RedisCluster集群安装详解

mhr18 2024-11-26 12:05 30 浏览 0 评论

1.需求描述

如图:
1、搭建Redis5.0集群,要求三主三从,记录下安装步骤;
2、能够添加一主一从(Master4和Slaver4),记录下安装步骤;
3、能够通过JedisCluster向RedisCluster添加数据和取出数据。

2.单机版搭建步骤

2.1 安装c语言所需环境

yum install -y gcc-c++
yum install -y wget 

2.2 下载redis-5.0.4并进行解压,编译,安装

## 编译
cd /usr/local
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar -zxf redis-5.0.4.tar.gz
cd redis-5.0.4/src
make 
## 安装,后续直接安装即可,用现成编译好的包
mkdir /usr/redis -p
make install PREFIX=/usr/redis 

2.3 配置redis,关闭保护模式and后台启动

cd /usr/local
cp redis-5.0.4/redis.conf /usr/redis/bin/ 
vi usr/redis/bin/redis.conf

# 将`daemonize`由`no`改为`yes`
daemonize yes
 
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
 
# 是否开启保护模式,由yes该为no
protected-mode no

# 设置redis密码
requirepass test001

2.4 启动redis的几种方式

# 后端模式启动服务
cd /usr/redis;./bin/redis-server bin/redis.conf
 
# 进入命令行模式
cd /usr/redis;bin/redis-cli -h hostname -p 端口号
cd /usr/redis;bin/redis-cli -h 127.0.0.1 -p 6379 #默认
# 退出命令行模式
exit
 
# 后端模式关闭服务(推荐)
cd /usr/redis;bin/redis-cli shutdown
 
# 前端模式启动服务(不推荐)
cd /usr/redis;bin/redis-server

2.5 api的方式来调用

// 1.导入依赖包
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency> 
// 2.示例代码
package com.lagou.redis;
 
import org.junit.Test;
import redis.clients.jedis.Jedis;
 
public class JedisDemo {
 
    @Test
    public void testConn() {
        //与Redis建立连接 IP+port
        Jedis redis = new Jedis("127.0.0.1", 6379);
        //在Redis中写字符串 key value
        redis.set("jedis:name:1", "hoult");
        //获得Redis中字符串的值
        System.out.println(redis.get("jedis:name:1"));
        //在Redis中写list
        redis.lpush("jedis:list:1", "1", "2", "3", "4", "5");
        //获得list的长度
        System.out.println(redis.llen("jedis:list:1"));
    }
} 
//输出
hoult
5


3.三主三从搭建步骤

3.1 集群规划

伪集群方式,单机上多个端口来模拟,即三台主服务器,三台从服务器,端口从6001-6006 ,安装位置mkdir -p /root/redis-cluster

3.2 创建实例并配置redis.conf文件

# 编译安装
cd /usr/local/redis-5.0.4/src
make install PREFIX=/root/redis-cluster/6001
 
# 复制redis.conf文件
cp /usr/local/redis-5.0.4/redis.conf /root/redis-cluster/6001/bin/
vi /root/redis-cluster/6001/bin/redis.conf
 
# 修改port为6001
port 6001
 
# 打开cluster-enable yes
cluster-enable yes
 
# ----------------------------------------------
# 配置后端开启模式
# 将`daemonize`由`no`改为`yes`
daemonize yes
 
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
# 所有机器可以访问
# bind 0.0.0.0
# 建议注释掉 bind x.x.x.x
 
# 是否开启保护模式,由yes该为no
protected-mode no 

# 设置redis密码
requirepass test001

3.3 将6001复制六份,注意修改端口

# 拷贝6001-->6002,6003,6004,6005,6006
cp -r /root/redis-cluster/6001 /root/redis-cluster/6002
cp -r /root/redis-cluster/6001 /root/redis-cluster/6003
cp -r /root/redis-cluster/6001 /root/redis-cluster/6004
cp -r /root/redis-cluster/6001 /root/redis-cluster/6005
cp -r /root/redis-cluster/6001 /root/redis-cluster/6006
 
# 重新修改:先删除再复制新的redis.conf文件
# 好处:只需要先修改6001的配置文件,再复制,再修改port即可
# rm -rf /root/redis-cluster/6002/bin/redis.conf
# cp /root/redis-cluster/6001/bin/redis.conf /root/redis-cluster/6002/bin/redis.conf
# 修改对应的端口号
vi /root/redis-cluster/6002/bin/redis.conf

3.4 使用启动脚本,启动所有实例

cd /root/redis-cluster/ 
vim start-redis-cluster.sh
 # 启动6001
cd /root/redis-cluster/6001/bin;redis-server redis.conf
# 启动6002
cd /root/redis-cluster/6002/bin;redis-server redis.conf
# 启动6003
cd /root/redis-cluster/6003/bin;redis-server redis.conf
# 启动6004
cd /root/redis-cluster/6004/bin;redis-server redis.conf
# 启动6005
cd /root/redis-cluster/6005/bin;redis-server redis.conf
# 启动6006
cd /root/redis-cluster/6006/bin;redis-server redis.conf

# 赋予权限
chmod 777 start-redis-cluster.sh

# 启动
sh start-redis-cluster.sh

## 登录客户端
./root/redis-cluster/6001/bin/redis-cli -h 127.0.0.1 -p 6001 

3.5 使用关闭脚本,关闭所有实例

# stop脚本
cd /root/redis-cluster/

vim stop-redis-cluster.sh
ps -aux | grep redis | awk '{print $2}' | xargs kill -9

# 赋予权限
chmod 777 stop-redis-cluster.sh

3.6 删除集群原始数据,并创建集群

# 删除集群遗留任何数据

cd /root/redis-cluster/6001/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
cd /root/redis-cluster/6002/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
cd /root/redis-cluster/6003/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
cd /root/redis-cluster/6004/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
cd /root/redis-cluster/6005/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
cd /root/redis-cluster/6006/bin/;rm -rf dump.rdb nodes.conf appendonly.aof
 
# 创建集群
# 注:必须写172.18.0.9(而不是linux121),否则出现:
# 1)ERR Invalid node address specified: linux121:6001;
# 2)jedis-2.9.0:Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool. Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect;
# 3)jedis-2.9.3:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?
cd /root/redis-cluster/6001/bin;./redis-cli --cluster create IP:6001 IP:6002 IP:6003 IP:6004 IP:6005 IP:6006 --cluster-replicas 1 -a password
 
# 输入yes继续部署

3.7 登录客户端进行验证

# 集群模式:-c必不可少
cd /root/redis-cluster/6001/bin/;./redis-cli -h 127.0.0.1 -p 6001 -c

相关推荐

你的程序是不是慢吞吞?GraalVM来帮你飞起来性能提升秘籍大公开

各位IT圈内外的朋友们,大家好!我是你们的老朋友,头条上的IT技术博主。不知道你们有没有这样的经历:打开一个软件,半天没反应;点开一个网站,图片刷不出来;或者玩个游戏,卡顿得想砸电脑?是不是特别上火?...

大数据正当时,理解这几个术语很重要

目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢?今天我们就来聊聊那些避不开的大数据技术术语,梳理并...

秒懂列式数据库和行式数据库(列式数据库的特点)

行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hb...

AMD发布ROCm 6.4更新:带来了多项底层改进,但仍不支持RDNA 4

AMD宣布,对ROCm软件栈进行了更新,推出了新的迭代版本ROCm6.4。这一新版本里,AMD带来了多项底层改进,包括更新改进了ROCm的用户空间库和AMDKFD内核驱动程序之间的兼容性,使其更容易...

难怪打不过英伟达CUDA!AMD ROCm开发平台仍然不支持RDNA 4

AMD发布了最新版本的ROCm6.4开发平台,不过奇怪的是,仍然没有加入对RDNA4架构产品的支持,只是新加入了RadeonProW780048GB显存版本,它仍然是RDNA3架构产品。R...

Java后端学习路线是什么?(java后端学到什么程度)

关于Java后端(SpringBoot为主)学习路线:一、Java基础阶段编程语言基础掌握基本数据类型(如int、double、char等)、变量、常量的定义和使用。理解运算符(算术、关...

Oracle与Nextcloud合作,推出主权云上的安全协作平台

据thefastmode网6月18日报道,Oracle与Nextcloud达成合作,将NextcloudHub引入Oracle云基础设施(OCI),为政府和企业客户提供安全协作平台。Nextclou...

主打的是回顾与展望?解读美国陆军250周年庆丨武装

2025年6月14日,美国陆军250周年庆(Armycelebrates250thbirthday)及阅兵活动在美国弗吉尼亚州阿灵顿县和华盛顿特区隆重举行,以纪念美国陆军成立(1775年6月14...

微服务不如单体架构?那是你不会用!

一、我为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提...

从杯垫到塔罗牌,这些“非主流品类”才是真风口!

说到卖小玩意,想到的不是薄利多销就是卷价格战,毕竟这种模式在国内已经根深蒂固,但跨境电商给了每一位想要做小品类赚大钱的卖家一个机会,从杯垫到塔罗牌,越来越多人,开始靠一些你日常根本不会注意到的小玩意,...

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)【故障描述】客户设备型号为IBMV7000存储,架构为AIX+oracle+V7000存储阵列柜,需要恢复的数据主要存放在阵列...

sql还有类型,大牛黑客必学,你也必须了解

上节课讲到sql注入的基础,上节课讲到的注入方法是联合查询,也称之为”显错注入”,当然,sql注入的方式不单单只是显错注入,还有不同的类型。根据数据库类型;一种是整形注入,一种是字符型注入。其实sql...

Java 性能优化(一)(java性能优化权威指南pdf)

优化目的可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积;提高代码的运行效率。本文讨论的主要是如...

八种基本服务器类型,看这篇完全够了!

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部上午好,我的网工朋友。服务器作为网络基础设施的核心组件,其重要性不言而喻。无论是个人空间还是大型企业的数据中心,服务器...

Oracle 赢得云大单:一年 2100 亿元

2025年7月1日,Oracle透露,它赢得了一份年收入超过300亿美元(2149亿元人民币)的云合同。受此消息影响,Oracle股价一度上涨近9%,最终以上涨4%收盘。据向监...

取消回复欢迎 发表评论: