在Linux中搭建伪群集+远程连接(步骤非常详细)

 什么是Redis

Redis(Remote Dictionary Server)是一个开源的内存中数据存储系统,也被称为缓存数据库。它被广泛用于构建高性能、可扩展、实时应用程序。Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,可以用于各种用途,包括缓存、消息队列、会话存储、排行榜、实时统计等。

以下是一些 Redis 的主要特点和用途:

  1. 内存存储:Redis将数据存储在内存中,这使得它非常快速,适用于需要快速读写的应用程序。同时,Redis也支持将数据持久化到磁盘,以防止数据丢失。

  2. 多数据结构:Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。这些数据结构使得Redis非常灵活,适用于各种不同的应用场景。

  3. 持久化:Redis支持将数据保存到磁盘,以便在服务器重启时恢复数据。这提供了数据持久性和可靠性。

  4. 复制:Redis支持主从复制,可以创建一个或多个从服务器,用于备份和扩展读取操作。

  5. 分布式:Redis支持分布式集群模式,允许将数据分布在多台服务器上,以提供高可用性和扩展性。

  6. 事务:Redis支持事务,可以执行一组命令作为原子操作,保证了数据的一致性。

  7. 发布/订阅:Redis支持发布和订阅模式,允许客户端订阅消息通知,以实现实时消息传递和事件驱动的应用程序。

  8. 缓存:Redis经常用作缓存层,以加速访问底层数据存储系统,减轻数据库负载。

  9. 计数器和排行榜:Redis的有序集合数据结构非常适合创建计数器和排行榜等实时统计功能。

Redis是一个多功能、高性能的内存数据库,它在许多不同类型的应用程序中得到了广泛的应用,从缓存到实时数据处理和消息队列等各种用途。它的灵活性和可扩展性使其成为开发人员的有力工具之一。

(一)单个Redis搭建

1.下载Redis安装包

可以先去官网下载有关的安装包,这里链接奉上:Index of /releases/ (redis.io)

这里我是用的是5.0.5的版本,可以使用wget连接下载

wget https://download.redis.io/releases/redis-5.0.5.tar.gz

2.解压Redis安装包并编译安装

将Redis的安装包解压到/usr/local下进行编译安装

tar xzf redis-5.0.5.tar.gz  -C /usr/local/

在编译安装前要先安装一下有关的依赖包

yum install -y  gcc-c++  ruby rubygems
cd /usr/local/redis-5.0.5/
make && make install

3.配置文件并启动

1.创建一个redis目录,在这个目录创建1个etc目录和一个bin目录分别存放我们redis的核心配置文件和存放主要命令,你可以理解为springboot的主启动类

mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin

 这里可以看到我已经是创建成功了,接下来就可以直接复制我们需要的文件了

1.移动etc目录所需的文件

 mv /usr/local/redis-5.0.5/redis.conf  /usr/local/redis/etc/

2.移动bin目录所需的文件

cd /usr/local/redis-5.0.5/src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel  redis-server redis-trib.rb /usr/local/redis/bin/

这里可以看到我已经是移动成功了,接下来进入/etc下修改redis的核心配置文件,在修改文件前我们习惯性的先做一个备份

cp /usr/local/redis/etc/redis.conf  /usr/local/redis/etc/redis.conf.bak

vim /usr/local/redis/etc/redis.conf 

1.将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问;同上,正式服务器项目上线可不修改,该条在88行)

2.将 daemonize 属性改为 yes (这样启动时就在后台启动,该条在136行)

3.设置密码(可选,个人建议还是设个密码,该行在507行)

4.允许连接主机(解决只能特定网段连接的限制;正式服务器部署如阿里云,为项目安全严格可以保留注释,自己用的话就取消注释,该行在69行)

注:如果和我一样也是使用5.0.5版本的可以使用我一下的替换命令直接替换,不用到文本中进行一条一条的更改,不同版本的配置文件也是不同的,如果使用其他版本的就只能自行寻找该行进行更改了!!

sed -i '507s/.*/requirepass 123456/' /usr/local/redis/etc/redis.conf
sed -i '69s/.*/bind 0.0.0.0/' /usr/local/redis/etc/redis.conf
sed -i '136s/.*/daemonize yes/'  /usr/local/redis/etc/redis.conf
sed -i '88s/.*/protected-mode no/'  /usr/local/redis/etc/redis.conf
sed -i '92s/.*/port 6379/' /usr/local/redis/etc/redis.conf

以上配置文件就已经修改完成了,可以去到目录下进行启动了,启动完成后我们可以查看进程

cd /usr/local/redis
./bin/redis-server /usr/local/redis/etc/redis.conf
ps -ef | grep redis

测试ping的结果是PONG后可以使用可视化工具 RedisDesktopManager 连接 redis,进行查看和操作

什么是Redis伪群集

Redis 伪集群是一种 Redis 部署模式,它模拟了 Redis 集群的某些特性,但并没有实际的分布式数据存储。它通常用于开发和测试环境中,以便模拟 Redis 集群的行为,而不需要在生产环境中配置和维护真正的 Redis 集群。

以下是 Redis 伪集群的主要特点:

  1. 多个 Redis 实例:Redis 伪集群包含多个 Redis 实例,通常在不同的端口上运行。每个实例都可以独立运行,并且有自己的配置文件和数据存储目录。

  2. 共享配置文件:虽然每个 Redis 实例都有自己的配置文件,但它们通常会共享相同的配置,以模拟集群中的一致性配置。

  3. 单点故障:Redis 伪集群中的每个实例都是单点,没有主从复制,也没有数据分片。这意味着如果某个实例发生故障,将会影响到整个伪集群。

  4. 模拟分片和节点:虽然伪集群没有真正的数据分片,但您可以将不同的数据集合存储在不同的实例中,并使用客户端路由来模拟分片。

  5. 用于测试和开发:Redis 伪集群通常用于测试和开发,以便在不配置真正的 Redis 集群的情况下模拟集群行为。这对于验证应用程序在集群环境中的行为非常有用。

需要注意的是,Redis 伪集群并不是生产环境的解决方案,因为它没有提供真正的高可用性和数据分布。在生产环境中,通常会使用 Redis 集群或其他分布式 Redis 解决方案,以满足高可用性和数据分片的需求。

(二)Redis伪群集搭建

1.复制主节点配置文件,编辑从配置文件,修改集群环境,修改端口

  1.创建从节点的存放目录,这里我创建了6个从节点端口分别是从7001-7006

mkdir /usr/local/jiedian
mkdir -p /usr/local/jiedian/{7001..7006}

2.把我们单个Redis下的/etc目录和/bin目录复制到这几个从节点文件夹中,并更改从中的每一个配置文件,相比第一个主节点的配置文件来说,我们,只需要修改其中4行即可

修改第一行在92行,将每个端口都修改为从节点的目录端口号

修改第二行在507行注释掉密码配置

修改第三行在832行改为yes.表示开启集群

修改第四行在840行表示指定的配置文件名称

 2.快捷批量配置

1.如果不想那么麻烦也是有捷径可以走的,接下来是我的批量配置的脚本,用for循环解决这些繁琐的事件,注意这个脚本是基于第一步单个Redis而部署的,如果读者是自己定义的路径完成的第一步,那么也许这个脚本帮助不到你

#!/bin/bash
#function:Redis伪群集批量创建脚本
#author:20230913 Mr.xie
base_dir="/usr/local/jiedian"
redis_dir="/usr/local/redis"

# 数组保存节点端口号
ports=(7001 7002 7003 7004 7005 7006)

# 循环遍历每个端口号
for port in "${ports[@]}"
do
    # 创建节点文件夹
    folder="$base_dir/$port"
    mkdir -p "$folder/etc"
    mkdir -p "$folder/bin"
    
    # 拷贝配置文件和二进制文件
    cp -r "$redis_dir/etc/"* "$folder/etc/"
    cp -r "$redis_dir/bin/"* "$folder/bin/"
    
    # 修改端口号
    sed "92s/.*/port $port/" -i "$folder/etc/redis.conf"
    
    #开启群集模式
    sed '832s/.*/cluster-enabled yes/' -i "$folder/etc/redis.conf"
    
    #修改群集端口
    sed "840s/.*/cluster-config-file nodes-$port.conf/" -i "$folder/etc/redis.conf"
    
    # 注释掉第 507 行,密码文件
    sed -i '507s/^/#/' "$folder/etc/redis.conf"
    
    # 启动节点
    "$folder/bin/redis-server" "$folder/etc/redis.conf"
    
    sleep 1
done

3.群集的搭建和组成

批量创建完成后我们可以使用ps命令来查看我们从节点的进程有没有起来,一下可以看到我的从节点是已经起来了,那么下面我们需要,将其组成起来

ps -ef | grep redis

基于我们使用的是5.0.5的版本可以直接使用以下命令进行群集组成

cd /usr/local/redis/bin/   #进入redis的控制文件存放目录
redis-cli --cluster create 192.168.42.130:7001 192.168.42.130:7002 192.168.42.130:7003 192.168.42.130:7004 192.168.42.130:7005 192.168.42.130:7006 --cluster-replicas 1

已下是这条命令的详细解释:

  • redis-cli:这是 Redis 客户端工具的命令行界面,用于与 Redis 服务器进行交互。

  • --cluster create:这是 redis-cli 命令的子命令,用于创建一个 Redis 集群。

  • 192.168.42.130:7001 192.168.42.130:7002 192.168.42.130:7003 192.168.42.130:7004 192.168.42.130:7005 192.168.42.130:7006:这是一系列参数,指定了 Redis 集群中的各个节点的地址和端口号。$ip 应该是一个变量,代表了 Redis 节点的 IP 地址或主机名。在这个命令中,假设 $ip 变量包含了集群中所有节点的地址,每个节点都监听不同的端口号(7001 到 7006)。

  • --cluster-replicas 1:这是一个选项,用于指定每个主节点在 Redis 集群中的从节点数量。在这里,它指定了每个主节点都有一个从节点。

这条命令的目的是创建一个包含多个主节点和从节点的 Redis 集群。主节点用于存储数据,而从节点用于备份数据和提供读取操作的负载均衡。Redis 集群提供了高可用性和分布式存储的能力,使得 Redis 在大规模应用中能够更可靠地运行。

到这里伪群集就部署完成了,这几个redis串起来组成一个集群。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值