redis安装、持久化和主从模式

一、简介

redis是内存数据库,访问速度快,常被用作缓存使用。

本文将从redis的安装、持久化和主从模式三个方面来介绍。

二、redis安装

1、安装方式一

在linux中,如ubuntu,可以直接使用命令:sudo apt-get install redis-server 进行安装。

2、安装方式二

使用源码编译安装。

1)下载redis源码:wget  http://download.redis.io/releases/redis-4.0.9.tar.gz

2)解压: tar -zxvf redis-4.0.9.tar.gz

3)进入解压后的redis主目录: cd  redis-4.0.9

4)编译:make  

 这时会有src目录下生redis-server、redis-cli等文件

5)启动redis: src/redis-server   这时使用的是默认的端口号6379。

注意:启动时可指定配置文件:src/redis-server redis.conf ,这样可以修改指定的端口号及域名等配置。

修改在redis.conf文件中,

端口号:  port 6380  可修改

修改域名:bind 127.0.0.1 ::1  改为  bind 192.168.0.107 即真实ip地址,这样可远程访问。

三、redis持久化

redis是内存数据库,同时提供持久化的能力,即redis是运行中,会将数据保存到硬盘内,

当因各种原因导致redis挂掉或重启时,redis可以恢复数据,同时也可用于数据复制。

redis持久化有两种方式,一是快照(snapshotting),二是AOP(append only file,追加文件)。

这两种方式可同时使用,也可单独使用。

1、快照持久化(snapshotting)

即在某一时刻,将redis内存中的所有数据保存到硬盘文件内。

1)快照保存路径

在配置文件redis.conf中设置,

dbfilename dump.rdb  

dir ./

即快照保存到dump.rdb文件中,保存目录为当前目录。

2)快照保存命令

redis快照保存命令有两种,一是bgsave,二是save。

bgsave:直接在客户端输入命令即可。执行后,redis会fork一个子进程,子进程负责将快照写入

硬盘中,同时父进程继续接收请求(此时新的数据写入内存中,不会进行快照)。

save:直接在客户端输入命令即可。执行后,与bgsave不同的是,save在创建快照时,不会接收新的

请求,直到快照创建完成,即是会阻塞。

3)快照创建的时机

redis创建的时机有

a、直接在客户端输入命令bgsave或命令save创建快照。

b、在配置文件redis.conf中设置,可同时设置多个,如下

save 900 1
save 300 10

save 60 10000

含义为:

after 900 sec (15 min) if at least 1 key changed
after 300 sec (5 min) if at least 10 keys changed
after 60 sec if at least 10000 keys changed

即从最近一次快照算起,在900秒内,若有一次key变更,则触发命令bgsave进行快照创建,

其它几条命令类似。

c、收到shutdown关机命令、term信号时,会执行sava命令,之后才关闭服务器。

d、其它配置

stop-writes-on-bgsave-error yes  当出错时,是否停止快照生成。

rdbcompression yes 是否压缩快照。

2、AOF持久化(append only file)

aof快照方式,保存的不是数据,而是写命令,有点类似于mysql的bin log日志。

1)常用配置

aop在配置文件redis.conf中设置,常用配置有

appendonly no   是否开启aof

appendfilename "appendonly.aof"    持久化保存的文件名

appendfsync everysec   持久化执行的频率(always:每条命令都同步写入  everysec:每秒写入  no:系统决定写入时机)

auto-aof-rewrite-percentage 100  当aof文件新增100%时,发出重写命令bgrewriteaof  
auto-aof-rewrite-min-size 64mb  当 aof文件达到64mb时,发出重写命令bgrewriteaof

更多配置可查看redis.conf文件。

2)命令

bgrewriteaof: 当aof文件过大时,可在客户端发送此命令,得写aof文件,去掉冗余命令。

四、redis主从配置

当访问量过大时,我们可基于主从配置来安装多个redis服务,一主多从,同时redis从服务下面又

可配置多个多服务。

redis主服务通常用来写数据,redis从服务通常来读数据。

1、主从配置步骤

这里以一主一从为例进行介绍。

1)首先安装两个redis服务,

主服务,在redis.conf中配置主机:bind 192.168.0.107,端口号:port 6379。

从服务,在redis.conf中配置主机:bind 192.168.0.107,端口号:port 6380。

2)接着配置从服务器

指定从服务(需指定主服务,从而获取更新)有两种方式:

一是在从服务的redis.conf配置文件中,配置主服务地址:slaveof 192.168.0.107 6379

二是在主从服务启动后,登录从服务redis-cli客户端,直接在从命令行中指定主服务:

slaveof 192.168.0.107 6379,取消用命令: slaveof  no one

经上述步骤,重启主从redis服务即可。

2、主从复制过程

主从服务安装后,就涉及主从复制,即从服务获取主服务的数据更新,再更新从服务,

这里介绍下主从复制过程:

a)从服务连接主服务时,发出sync命令;

b)主服务执行bgsave操作,生成快照,快照生成后发给从服务,期间新的写操作存入缓冲区;

c)从服务接收主服务的快照,丢弃现有的旧数据,写入快照数据;

d)主服务将缓冲区中的写操作发给从服务,发完后,每接收一条新写数据操作,就发给从服务;

e)从服务接收主服务缓冲区中写操作,以及后续实时写操作。

备注为了便于主从服务间的数据复制,保证性能,主服务器内存最好只用约60%,剩下的内存用于

快照生成及写操作缓冲区。








猜你喜欢

转载自blog.csdn.net/chinabestchina/article/details/80503150
今日推荐