redis揭秘-redis01-redis单例与集群安装总结

【README】

1)本文介绍了redis单例,redis集群3种模式安装方法(主从模式, 哨兵模式, CLUSTER模式); 其中CLUSTER是redis集群的最佳模式

2)对于redis集群的cluster模式,演示了新增与删除主从节点,槽位分配操作;



【1】安装单机

【1.1】安装环境

[root@centos211 redis-7.0.15]# cat /etc/redhat-release
CentOS Linux release 8.3.2011


【1.2】安装步骤

1)下载redis安装包源码

https://redis.io/downloads/

或者 https://download.redis.io/releases/redis-7.0.15.tar.gz?_gl=18hf3xj_gcl_au*MTE4NTMwMTg4Ny4xNzMyOTM4MDk1

2)拷贝到centos8 root家目录下的software文件下:

[root@centos211 software]# ll
总用量 2932
drwxrwxr-x. 8 root root    4096 19 2024 redis-7.0.15
-rw-r--r--. 1 root root 2994329 1130 11:43 redis-7.0.15.tar.gz
[root@centos211 software]# 
[root@centos211 software]# pwd
/root/software
[root@centos211 software]# 

执行解压命令:

tar -xvf  redis-7.0.15.tar.gz  得到 redis-7.0.15

3)在redis目录(/root/software/redis-7.0.15) 执行make命令,编译redis源码

sudo yum install make #若没有安装make命令(编译工具)
make

【make命令补充】make命令理解为是编译工具

Linux 中的 make 命令可自动执行从源代码创建和编译应用程序的过程。在编译应用程序时,该实用程序会读取包含如何构建应用程序的说明的 makefile,然后执行必要的命令以完成构建过程。

4)使用make编译报cc:命令未找到

原因:没有gcc编译器 ;

安装gcc编译器,如下:

sudo yum groupinstall 'Development Tools' #安装开发工具,包括安装gcc编译器

5)查看gcc编译器版本

rpm -q gcc #查看gcc编译器安装包
gcc --verson #查看安装的gcc编译器版本
gcc -v
g++ -v

6)继续执行make命令编译redis源码

报错:zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: No such file or directory

原因:我们在开始执行make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,我们再执行make ,这时就出现了jemalloc/jemalloc.h: No such file or directory。 这是因为上次的编译失败,有残留的文件,我们需要清理下,然后重新编译就可以了

解决方法:在redis家目录【/root/software/redis-7.0.15】重新执行命令:

make distclean  && make 

7)在redis家目录执行 make test 验证redis源码编译成功

在这里插入图片描述

8)在redis家目录执行 make install 安装redis服务;

[root@centos211 redis]# make install
cd src && make install
make[1]: Entering directory '/root/software/redis-7.0.15/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL redis-server
    INSTALL redis-benchmark
    INSTALL redis-cli
make[1]: Leaving directory '/root/software/redis-7.0.15/src'

9)在redis家目录创建 conf 与 data文件夹

mkdir conf
mkdir data

10)使用 ln -s 创建符号链接(软链接);(使用/redis 可以访问/root/software/redis-7.0.15)

ln -s /root/software/redis-7.0.15 /redis

11)新增redis启动配置文件(参考redis家目录下的redis.conf文件)

[root@centos211 conf]# vim redis-6379.conf
port 6379
dir /redis/data
dbfilename "dump-6379.rdb"

12)启动redis服务器

[root@centos211 conf]# redis-server redis-6379.conf 

在这里插入图片描述

13)客户端连接redis服务器(redis-cli -p 6379)

[root@centos211 redis]# redis-cli -p 6379
127.0.0.1:6379> 
127.0.0.1:6379> set name 123
OK
127.0.0.1:6379> get name
"123"
127.0.0.1:6379> 


【2】redis集群主从模式配置

【2.1】集群架构

主节点:127.0.0.1 6401

从节点:127.0.0.1 6402



【2.2】redis集群主从模式搭建步骤

1)创建 redis-6401.conf文件

[root@centos211 conf]# cp redis-6379.conf redis-6401.conf
# redis-6401.conf 内容 
port 6401
dir /redis/data
dbfilename "dump-6401.rdb"

[root@centos211 conf]# pwd
/redis/conf

2)创建redis-6402.conf文件(从redis-6401.conf复制并用6402替换6401,得到redis-6402.conf)

[root@centos211 conf]# sed "s/6401/6402/g" redis-6401.conf > redis-6402.conf
# redis-6402.conf 内容
port 6402
dir /redis/data
dbfilename "dump-6402.rdb"
slaveof 127.0.0.1 6401 #声明6402是6401的从节点,6401是主节点 

3)启动主节点

[root@centos211 conf]# redis-server redis-6401.conf

4)启动从节点

[root@centos211 conf]# redis-server redis-6402.conf 
44963:S 01 Dec 2024 02:33:27.592 * Ready to accept connections
44963:S 01 Dec 2024 02:33:27.597 * Connecting to MASTER 127.0.0.1:6401  # 连接到主节点
44963:S 01 Dec 2024 02:33:27.597 * MASTER <-> REPLICA sync started

在这里插入图片描述

5)从节点启动后,主节点日志如下:

44956:M 01 Dec 2024 02:33:03.518 * Ready to accept connections
44956:M 01 Dec 2024 02:33:27.599 * Replica 127.0.0.1:6402 asks for synchronization 
# 接收到从节点6402的resync请求 
44956:M 01 Dec 2024 02:33:27.599 * Full resync requested by replica 127.0.0.1:6402 

在这里插入图片描述

6)客户端1连接主节点6401,设置key=name,value=1234

[root@centos211 ~]# redis-cli -p 6401
127.0.0.1:6401> set name 1234
OK
127.0.0.1:6401> 

7)客户端2连接从节点6402,获取key=name的value

[root@centos211 ~]# redis-cli -p 6402
127.0.0.1:6402> get name
"1234"


【2.3】redis集群主从模式的问题(单点故障问题)

1)问题: 当主节点宕机,则整个集群无法提供写服务直到从节点切换为主节点,因为从节点是只读节点,只能提供读服务;(而主节点宕机后,主从模式不具备自动恢复能力,即从节点自动切换为主节点,只能人工干预

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值