一、Redis简介
Redis(Remote Dictionary Server 远程字典服务)是一个开源的高性能key-value数据库,它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供 list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
为什么用Redis?
一个字,快!传统的关系型数据库如 Mysql 等已经不能适用所有的场景了,比如在高并发,访问流量高峰等情况时,数据库很容易崩了。Redis 运行在内存,能起到一个缓冲作用,由于内存的读写速度远快于硬盘,因此 Redis 在性能上比其他基于硬盘存储的数据库有明显的优势。
同时除了快之外,还可应用于集群的自动容灾切换以及数据的读写分离,减轻高并发的压力。
二、Redis 安装部署
1、下载安装包
官网下载地址,这里我们下载目前最新稳定版7.0.6,直接点击下载。
或者直接使用命令下载,如下:
wget http://download.redis.io/releases/redis-7.0.6.tar.gz
2、安装
首先解压安装包,如下
tar xzf redis-7.0.6.tar.gz
进入解压文件目录使用make
命令对解压的 redis 文件进行编译,如下
cd redis-7.0.6/ make
注意
提示/bin/sh:行1: cc:未找到命令,执行下面命令
yum install gcc-c++ -y
编译完成之后,可以看到解压文件 redis-5.0.7 中会有对应的 src、conf 等文件,如下
编译成功后,进入 src 文件夹,执行 make install 进行 Redis 安装。
cd src/ make install
安装完成后,显示如下
3、部署
由于 src 下文件非常多,我们可以将几个常用的命令和 conf 配置文件复制出来进行统一管理,如下:
(1)新建 bin 和 etc 文件夹
cd /root/redis-7.0.6/ mkdir etc mkdir bin
(2)回到安装目录,将redis.conf复制到 ect 文件夹下
cp redis.conf /root/redis-7.0.6/etc
(3)进入 src 文件夹下,将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server、redis-sentinel文件复制到 bin 文件夹
cd src/ cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /root/redis-7.0.6/bin/
查看复制后的文件,如下
4、启动redis服务
切换到 bin 目录,使用./redis-server即可启动 redis 服务,但是这种方式没有指明配置文件,redis 将采用默认配置,所以我们需要让 redis 按照我们的配置文件来启动,如下,启动时指定刚才我们复制到 etc 文件夹下的redis.conf。
cd /root/redis-7.0.6/bin # 加上 '&' 表示在后台运行,也可修改配置文件redis.conf中的daemonize为yes ./redis-server /root/redis-7.0.6/etc/redis.conf
启动后查看redis的进程,如下,可以看到6379端口就是我们运行的 redis 服务(配置文件中默认端口为6379)。
使用redis-cli命令连接客户端,如下
5、关闭redis服务
如果需要关闭redis服务,使用如下命令即可关闭。
redis-cli -p 6379 shutdown
三、Redis 集群整体架构
这里我们采用的集群整体架构就是主从结构+哨兵(sentinel),实现容灾的自动切换,如下图所示:
一个主节点(master)可拥有多个从节点(slave),从节点实现对主节点的复制,保证数据同步。而哨兵(sentinel)则对各节点进行监控,主要包括主节点存活检测、主从运行情况检测等,一旦主节点宕机,哨兵可自动进行故障转移 (failover)、主从切换。
接下来就开始搭建这样一个集群,首先是主从结构,然后是哨兵模式,接着往下看。
手把手教你如何搭建redis集群(二):https://developer.aliyun.com/article/1537440