Redis集群搭建真的很简单

背景

很多小伙伴在学习redis的时候都只在windows上搭建过redis,然后工作之后也只是在应用redis。那么redis在Linux上如何搭建呢?集群如何搭建呢?本文不讲原理,只讲实际操作。真的很简单。

环境

  • Linux-Ubuntu 20.04.6 LTS x86_64
  • Redis 6.2.6

准备工作

1、下载redis

arduino 复制代码
https://redis.io/download/

英语好的可以直接找历史版本下载,英语不好的直接页面翻译。现在学编程对英语不好的人很友好。

然后选择6.2.6版本

右键点击复制链接

2、Linux-Ubuntu 安装 Redis

进入Linux中你想要安装的目录

shell 复制代码
cd myspace/

创建文件夹

shell 复制代码
mkdir redis

进入创建的文件夹

shell 复制代码
cd myspace/redis

将第一步复制的链接通过下载

shell 复制代码
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

解压Redis压缩包

shell 复制代码
tar -zxvf redis-6.2.6.tar.gz

解压出来的文件为 redis-6.2.6

进入文件夹中

shell 复制代码
cd redis-6.2.6

安装make编译(注:如果您的服务器中已经有make编译器,这一步请忽略,因为redis源码是C语言编写的,所以编译需要C语言编译器)

shell 复制代码
    sudo apt-get update  
    sudo apt-get install make

编译Redis(这一步编译时间较长,请耐心等待)

shell 复制代码
sudo make
## 如果失败 请先执行
sudo make MALLOC=libc
## 在执行
sudo make

然后测试是否编译成功(这一步运行时间也很长,请耐心等待)

shell 复制代码
sudo make test

安装Redis

shell 复制代码
sudo make install

大功告成,这样子你的redis就在你的Ubuntu中就算配置全部完成了。

以上步骤执行完毕之后你就会在你的文件夹中发现两个文件 redis-server redis-cli 这就是你安装好的应用。

  • redis-server 就是你要启动的玩意儿。
  • server-cli 是你的服务启动起来之后登录的工具。

配置Redis.conf

这下你的redis的文件夹中就只有三个有用文件

  • redis-server
  • server-cli
  • redis.conf

保留这三个文件其他的都可以全部删除。

其中redis.conf文件就是你redis-server玩意儿启动的配置文件。

创建六个文件夹 分别为

arduino 复制代码
mkdir redis-node1

以此类推

  • redis-node1
  • redis-node2
  • redis-node3
  • redis-node4
  • redis-node5
  • redis-node6

然后在每个文件夹中分别创建一个配置文件redis.conf。六个文件夹分别为

bash 复制代码
touch redis-node1.conf

以此类推

  • redis-node1.conf
  • redis-node2.conf
  • redis-node3.conf
  • redis-node4.conf
  • redis-node5.conf
  • redis-node6.conf

初学者不用看网上的配置,想要优化或者实际应用到redis的某些细节可以好好的看看配置。一般企业中redis的配置以下就足够了。 注:我就直接用集群的配置文件做演示。

text 复制代码
# 服务端启动的端口
port 9011

# 绑定的 IP 地址,0.0.0.0 表示监听所有网络接口
bind 0.0.0.0

# RDB 持久化设置
# 在 900 秒(15 分钟)内,如果至少有 1 个 key 发生了变化,就执行一次 RDB 持久化
save 900 1
# 在 300 秒(5 分钟)内,如果至少有 10 个 key 发生了变化,就执行一次 RDB 持久化
save 300 10
# 在 60 秒内,如果至少有 10000 个 key 发生了变化,就执行一次 RDB 持久化
save 60 10000

# 如果执行 RDB 持久化时出现错误,停止写入操作
stop-writes-on-bgsave-error yes

# 启用 RDB 文件压缩
rdbcompression yes

# 启用 RDB 文件检验和
rdbchecksum yes

# 启用集群模式
cluster-enabled yes

# 主节点的密码验证
masterauth 11111

# 集群的密码验证
requirepass 11111

# 集群配置中向其他节点广播的 IP 地址
cluster-announce-ip 11.11.32.12

# 集群配置中向其他节点广播的端口
cluster-announce-port 9011

# 以守护进程(后台)方式运行 Redis
daemonize yes

# 在配置文件中指定主节点配置 
# replicaof no one

# 从节点可以直接指定主键点的ip 和 端口
# replicaof 127.0.0.1 6379

启动redis的六个节点

启动命令

shell 复制代码
/redis-server redis-node1.conf

如果需要自定义主从节点

yaml 复制代码
# 主节点
redis-server --slaveof no one
# 从节点 直接指定主节点的 ip和端口
redis-server --slaveof 127.0.0.1 6379

以此类推分别启动其他五个节点。

检测是否启动成功

检测命令

shell 复制代码
ps -ef | grep redis-server

查看是否启动成功

集群连接

集群连接命令。

shell 复制代码
redis-cli -a "111111" --cluster create 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006 --cluster-replicas 1

其他问题

解决重启redis集群问题。

lua 复制代码
1、全部停止所有集群 
2、删除 appendonly.aof 和 dump.rdb 
3、删除所有节点的cluster-config-file
4、重新启动
相关推荐
WeiQ_4 小时前
解决phpstudy 8.x软件中php8.2.9没有redis扩展的问题
数据库·redis·缓存
陈果然DeepVersion11 小时前
Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(六)
java·spring boot·redis·微服务·面试题·rag·ai智能客服
阿萨德528号17 小时前
Redis 分布式锁进阶:跨语言场景下的锁兼容性与一致性保障
数据库·redis·分布式
秋雨雁南飞20 小时前
c# 使用Memory实现Redis入队出队功能
redis·c#
星光一影20 小时前
悬赏任务平台/拉新地推系统源码
redis·mysql·小程序·php·uniapp·html5
-Xie-1 天前
Redis(二)——数据类型二
数据库·redis·缓存
User_芊芊君子1 天前
【LeetCode 经典题解】:队列与栈的双向模拟——从原理到代码详解
linux·redis·leetcode
JH30731 天前
《Redis 经典应用场景(一):缓存、分布式锁与限流》
redis·分布式·缓存
苦学编程的谢1 天前
Redis_4_常见命令(完)+认识数据类型和编码方式
数据库·redis·缓存
小坏讲微服务1 天前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s