redis推荐在linux服务器上安装,window版本的都已经停更了
1、Linux下安装Redis
下载地址:Download | Redis,下载稳定版本。
自己安装的一般放在 opt目录下: cd /opt
下载
# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
解压
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make
基本环境安装
yum -y install gcc-c++
查看gcc是否安装成功
gcc -v
执行make命令:把所有需要的文件都给配置上
make
执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:
#想要确认的话,可以在执行 make install 命令,可执行可不执行
redis 默认安装路径:/usr/local/bin
进入:
在当前目录下建个目录,复制一份配置文件到当前目录。后面可以用这个配置文件启动
redis默认不是后台启动的,修改配置文件
vim redis.conf
下面启动 redis 服务:
# cd src
# ./redis-server
注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。
# cd src
# redis-server ykRedisConfig/redis.conf
redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。为了修改不会改变默认的配置,可以把redis.conf copy出来一份,用于启动
重新打开一个窗口查看:
如何关闭redis服务?
关闭:shutdown
退出:exit
2、Redis 性能测试
简单测试:
测试100个并发,100000个请求
先连接服务端,客户端,之后 /usr/local/bin
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
3、redis基本知识
redis默认16个数据库
默认用第0个数据库
#清空所有数据库 flushall
#清空当前数据库 flushdb
主从模式详解
127.0.0.1:6379> info replication #查看当前库的信息
Replication
role:master #角色 master
connected_slaves:0 #没有从机
master_replid:14a34183a66c2db7bf6c1d50bd4015c42347f4cb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
一主二从
默认情况下每台redis服务器都是主节点,我们一般情况下配置从节点即可
命令开启的,只是临时的。
配置文件修改,永久的
主机可以写,从机只能读
主机写:
4、Redis集群:Sentinel哨兵模式
在 Redis 主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性较低,不适用于线上生产环境。Redis 官方推荐一种高可用方案,也就是 Redis Sentinel 哨兵模式,它弥补了主从模式的不足。Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(master),从而保证了系统的高可用性。
哨兵模式原理
哨兵模式是一种特殊的模式,Redis 为其提供了专属的哨兵命令,它是一个独立的进程,能够独立运行。下面使用 Sentinel 搭建 Redis 集群,基本结构图如下所示:
在上图过程中,哨兵主要有两个重要作用:
- 第一:哨兵节点会以每秒一次的频率对每个 Redis 节点发送PING命令,并通过 Redis 节点的回复来判断其运行状态。
- 第二:当哨兵监测到主服务器发生故障时,会自动在从节点中选择一台将机器,并其提升为主服务器,然后使用 PubSub 发布订阅模式,通知其他的从节点,修改配置文件,跟随新的主服务器。在实际生产情况中,Redis Sentinel 是集群的高可用的保障,为避免 Sentinel 发生意外,它一般是由 3~5 个节点组成,这样就算挂了个别节点,该集群仍然可以正常运转。其结构图如下所示:
1、主观下线
主观下线,适用于主服务器和从服务器。如果在规定的时间内(配置参数:down-after-milliseconds),Sentinel 节点没有收到目标服务器的有效回复,则判定该服务器为“主观下线”。比如 Sentinel1 向主服务发送了
PING命令,在规定时间内没收到主服务器 PONG回复,则 Sentinel1 判定主服务器为“主观下线”。
2、客观下线
客观下线,只适用于主服务器。 Sentinel1 发现主服务器出现了故障,它会通过相应的命令,询问其它 Sentinel 节点对主服务器的状态判断。如果超过半数以上的 Sentinel 节点认为主服务器 down 掉,则 Sentinel1 节点判定主服务为“客观下线”。
3、投票选举
投票选举,所有 Sentinel 节点会通过投票机制,按照谁发现谁去处理的原则,选举 Sentinel1 为领头节点去做 Failover(故障转移)操作。Sentinel1 节点则按照一定的规则在所有从节点中选择一个最优的作为主服务器,然后通过发布订功能通知其余的从节点(slave)更改配置文件,跟随新上任的主服务器(master)。至此就完成了主从切换的操作。
对上对述过程做简单总结:
Sentinel 负责监控主从节点的“健康”状态。当主节点挂掉时,自动选择一个最优的从节点切换为主节点。客户端来连接 Redis 集群时,会首先连接 Sentinel,通过 Sentinel 来查询主节点的地址,然后再去连接主节点进行数据交互。当主节点发生故障时,客户端会重新向 Sentinel 要地址,Sentinel 会将最新的主节点地址告诉客户端。因此应用程序无需重启即可自动完成主从节点切换。
哨兵模式应用
在本地环境使用主从模式搭建一个拥有三台服务器的 Redis 集群,
1、 配置sentinel哨兵
首先新建 sentinel.conf 文件,并对其进行配置,如下所示:
port 26379 Sentinel monitor biancheng 127.0.0.1 6379 1
配置文件说明如下:
port 26379 #sentinel监听端口,默认是26379,可以更 改 sentinel monitor <master-name> <ip> <redis-port> <quorum>
第二个配置项表示:让 sentinel 去监控一个地址为 ip:port 的主服务器,这里的 master-name 可以自定义; 是一个数字,表示当有多少个 sentinel 认为主服务器宕机时,它才算真正的宕机掉,通常数量为半数或半数以上才会认为主机已经宕机, 需要根据 sentinel 的数量设置。
2、启动sentienl哨兵
[root@localhost bin]# redis-sentinel ykRedisConfig/sentinel.conf
3、 停止主服务器服务
下面模拟主服务意外宕机的情况,首先直接将主服务器的 Redis 服务终止,然后查看从服务器是否被提升为了主服务器。执行以下命令:
执行完上述命令,您会发现 6381 称为了新的 master,而其余节点变成了它的从机,执行命令验证:
127.0.0.1:6381> set webname www.bianeng.net OK
停止主服务 6379
shutdown
exit
会发现哨兵监控进程发生变化如下:
6381成为了新的主节点:
这个时候如果把宕机的主节点重新启动,你会发现,原先的主节点自动变成了从节点,如下:
如果您想开启多个哨兵,只需配置要多个 sentinel.conf 文件即可,一个配置文件开启一个。
谢谢观看!!!