一、介绍
Redis(Remote Dictionary Server)是一个开源的、高性能的键值存储系统,常被用作数据库、缓存和消息中间件。它以内存存储为核心,支持持久化,提供极快的读写速度,适用于高并发场景。Redis支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,并提供了丰富的操作命令。此外,Redis还支持事务、发布/订阅、Lua脚本、数据过期等高级功能,具备主从复制、哨兵模式和集群模式等高可用方案,是现代分布式系统中广泛使用的关键技术之一。
主服务器(Master):负责处理写操作和响应客户端的读写请求。
从服务器(Slave):复制主服务器的数据,负责读操作,并在主服务器发生故障时接管主服务器的角色。
哨兵节点(Sentinel):监控主服务器和从服务器的状态,进行故障检测,并在主服务器发生故障时自动进行故障转移和故障恢复
在一主而从三哨兵模式中,有一个主节点和多个从节点,同时还有三个哨兵节点来监控主节点的健康状态。当主节点出现故障时,哨兵节点会自动选举一个从节点作为新的主节点,并将其他从节点切换到新的主节点上,这个过程是自动的,不需要手动干预。
二、安装
1、环境
序号 | ip | 服务器系统 | hostname | 主从关系 |
---|---|---|---|---|
1 | 192.168.40.191 | Kylin10SP2 | kylin01.com | 主 |
2 | 192.168.40.192 | Kylin10SP2 | kylin02.com | 从 |
3 | 192.168.40.193 | Kylin10SP2 | kylin03.com | 从 |
使用的redis版本:redis-6.2.5.tar.gz
2、安装
1、解压,安装依赖,安装redis
1、安装依赖,麒麟的在线安装yum总是出问题,我用的本地yum,本地yum,参照我很早之前发的文档
yum install -y gcc wget net-tools vim tree
yum install -y kernel-headers
yum install -y readline-devel
yum -y install gcc automake autoconf libtool make
2、开始安装
wget https://download.redis.io/releases/redis-7.0.9.tar.gz
tar -zxvf redis-7.0.9.tar.gz
mv redis-7.0.9 /usr/local/redis
cd /usr/local/redis
make PREFIX=/usr/local/redis install
#这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定好目录也方便后续的卸载,后续直接 rm -rf /usr/local/redis 即可删除redis。
3、启动
chmod 777 bin/redis-server redis.conf
./bin/redis-server ./redis.conf
4、修改配置
vim /usr/local/redis/redis.conf
#bind 127.0.0.1 -::1
#允许访问的地址,默认是127.0.0.1,会导致只能在本地访问
bind 0.0.0.0 -::1
#daemonize no
#守护进程,修改为yes后即可后台运行
daemonize yes
requirepass 123456
2、一主二从三哨兵
参照:https://blog.youkuaiyun.com/weixin_43813394/article/details/136173824?spm=1001.2014.3001.5502
五、问题
1、连接主redis失败
解决方式:修改从redis的redis.conf的masterauth <master-password>
是masterauth 123456
和主redis的redis.conf的requirepass 123456
保持一致