redis的4种模式,单机,哨兵、主从复制、集群

 为什么redis叫做redis服务器?

因为在运行时,在进行工作时是一个被注册一个进程(服务),我们把他叫做一个redis服务器。(就是个应用程序而已。)

1.单机模式

我们安装redi,启动服务之后,默认就这个,只有一个redis服务器(就是一个主服务器),但是哨兵模式默认开启。(只不过挂掉后,没有能选举的。)

2.主从复制

相关概念

一台计算机有唯一的ip,里面的端口号分别对应不同的应用程序。

因此,我们windows 上访问Linux 的redis(应用程序),只需要知道 ip + port。


1.在主从复制中,一般设置一个redis服务器作为一个主服务器(master),其他redis服务器为(slave)

2.主服务器负责所有的写操作,而读操作,主从服务器均可。另外,主服务器数据修改,会将修改数据复制到从服务器一份,达到共享的目的。

3.当主武器宕机(死机)时,从服务器会自动上升主服务器。

理解:从服务器是只读的,主服务器读写均可。主服务器的数据增删改复制到从服务器。

redis主从复制模式实例

1.创建 /opt/redis/data   /opt/redis/log   /opt/redis/conf  目录 mkdir -p ...

2.创建 将redis.conf复制到 /opt/redis/conf/里   ,命名为redis-common.conf

  touch 创建 redis-6379.conf  redis-6380.conf redis-6381.conf 。

3.vim redis-common.conf,将他作为一份公共配置文件。

daemonize yes 。

注释掉,pidfile、logfile、dbfilename ,appenfilename ,他们不是在那个目录生成这些文件吗?也要改生成的目录,分别改成对应的  /opt/redis/data   /opt/redis/log   /opt/redis/conf  目录。

4.vim redis-6379.conf   作为主节点

#引用公共配置
include /opt/redis/conf/redis-common.conf
#进程编号文件
pidfile /var/run/redis_6379.pid
#进程端口号
port 6379
#日志记录文件
logfile "/opt/redis/log/redis-6379.log"
#数据记录文件
dbfilename dump-6379.rdb
#追加文件名称
appendfilename "appendonly-6379.aof"
#备份服务器从属于6379配置局域网IP
#slaveof 192.168.88.135 6379

另外2个redis-....conf作为从节点,只需将6379改成相应的配置之类。

有redis服务先kill掉,然后在启动这个3个配置文件。

redis的4种模式,单机,哨兵、主从复制、集群_第1张图片

案例

redis的4种模式,单机,哨兵、主从复制、集群_第2张图片

 3.哨兵模式

上述提到,主从复制模式,主服务器死机,从服务器变成主服务器,当主武器重启时,变成从服务器。而这个过程的实现,主要依靠哨兵模式。

简单理解:主服务器挂掉后,哨兵会重新选举一个从服务器作为主服务器,原来挂掉的主服务器重新启动后,哨兵会将他变为从服务器。

哨兵模式实例:

在上一次主从复制模式,的基础上。进行

1. 在redis.conf同目录下面,找到sentinel(哨兵).conf,复制到 /opt/redis.conf 文件里面。

2.同样复制一个sentinel-common.conf ,vim 他。(作为一个公共配置来使用。)

3.sentinel-common.conf文件注释掉port,pidfile等,这句话是哨兵监控主服务器的 ip + 端口,下面指令那个2是默认3台哨兵监控主服务器,假如主服务器崩掉,要求能检测成功的哨兵数量(也就是下面的2),占总哨兵的50%以上。

因此,假如5台哨兵,那么应该写3。

sentinel monitor mymaster 127.0.0.1 6379 2

# sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
# sentinel auth-pass
sentinel auth-pass mymaster 123456

4. touch 

 相应的对着改。

#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26379
#进程编号记录文件
pidfile /var/run/sentinel-26379.pid
#日志记录文件
logfile "/opt/redis/log/sentinel-26379.log"

这么说我们对应3个哨兵会被linux注册为3个服务,虽然监控是一个redis-server服务。

启动哨兵

必须先启动redis-server,再启动哨兵。

redis-sentinel sentinel-26379.conf

redis的4种模式,单机,哨兵、主从复制、集群_第3张图片

 4.集群模式

当数据量进一步增大时,显然主从复制 + 哨兵模式,已经不满足开发者需求。

这时候就要用集群:

redis的4种模式,单机,哨兵、主从复制、集群_第4张图片

  •  集群中主、从服务器数量要求分别为奇数,各节点分担数据的读、写。
  • 当用户写入和读取数据时,会先将Key转换一个对应Hash编号,连接对应的槽存储。
  • 集群的槽,总共由16384个。

你可能感兴趣的:(Redis,redis,数据库,缓存)