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、重新启动
相关推荐
web151173602233 小时前
Redis--模糊查询--方法实例
数据库·redis·缓存
MelonTe7 小时前
使用Go复刻skiplist核心功能
redis·golang
左灯右行的爱情7 小时前
Redis-事务
数据库·redis·bootstrap
guihong0048 小时前
深入理解Redis:从线程模型到应用场景的全面解析
数据库·redis·缓存
draymond71078 小时前
redis-bitmap使用场景
redis
Suk-god8 小时前
【Redis原理】底层数据结构 && 五种数据类型
数据结构·数据库·redis
Good Note10 小时前
Golang的静态强类型、编译型、并发型
java·数据库·redis·后端·mysql·面试·golang
卑微的小鬼11 小时前
Go 语言结合 Redis 实现固定窗口、滑动窗口、令牌桶和漏桶限流算法的示例代码
开发语言·redis·golang
苍老流年14 小时前
Redis底层数据结构
数据结构·数据库·redis
三天不学习14 小时前
Redis面试宝典【刷题系列】
数据库·redis·面试