redis搭建+redis主从

Linux项目_redis_redis搭建+redis主从

一.redis介绍


1.什么是redis:

redis是一个开源的,遵守BSD协议,是一个高性能的key-value数据库,内存存储的数据结构服务器,可用作数据路,高速缓存和消息队列的代理。支持字符串,哈希表,列表,集合,有序集合,位图,hyperloglogs等数据类型。内置复制,lua脚本,LRU收回,事务以及不同级别磁盘持续化功能,同时通过redis sentinel提供了高可用,通过redis cluster提供了自动分区。Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,Redis支持数据的备份,即master-slave模式的数据备份。

2.redis持久化

AFO:以日志的形式俩记录每个写操作,将 redis 执行过的所有写指令记录下来(读操作不记录)。只许追加文件但不可以改写文件,redis 启动之初会读取该文件重新构建数据,redis重启的话就根据日志文件的内容将写指令从前到后执行一次一完成数据恢复工作。使用 AOF 持久化会让 Redis 变得非常耐久:你可以设置不同的 fsync 策略,比如无 fsync ,每秒钟一次 fsync ,或者每次执行写入命令时 fsync 。 AOF 的默认策略为每秒钟 fsync 一次,在这种配置下,Redis 仍然可以保持良好的性能,并且就算发生故障停机,也最多只会丢失一秒钟的数据

Rdb:在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时就是将快照文件直接读到内存里。
Redis 会单独的创建(fork) 一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束了,再用这个临时文件替换上次持久化的文件。整个过程主进程是不进行任何 IO 操作,这就确保了极高的性能,如果需要进行大规模的数据恢复,且对于数据恢复的完整性不是非常敏感,那 RDB 方法要比 AOF 方式更加的高效。RDB 的缺点是最后一次持久化后的数据可能丢失。(因为是隔一段时间才把数据集写入磁盘,当突然redis被crash,本次的数据丢失)

3.redis主从复制

主从复制的原理:

全量复制:

Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。
1)从服务器连接主服务器,发送SYNC命令;
2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写名令;
3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;
增量复制:
Redis增量复制是指Slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。
增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。
redis主从复制策略:
主从刚刚连接的时候,进行全量同步;全量同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。

redis的复制机制:对于slave端来说,主从复制主要经历四个阶段:(1)与master建立连接;(2)向master发起同步请求(SYNC);(3)接受master发来的RDB数据;(3)载入RDB文件

4.中文官网

http://www.redis.net.cn

三.zabbix的搭建


1.环境

server11 - - - 172.25.0.11 - - - rhel7.3
server1 - - - - 172.25.0.1 - - - - rhel6.5 - - - - master
server2 - - - - 172.25.0.2 - - - - rhel6.5 - - - - slave
server3 - - - - 172.25.0.3 - - - - rhel6.5 - - - - lamp
server4 - - - - 172.25.0.4 - - - - rhel6.5 - - - - mysql

2.redis安装

server1&server2
yum install -y gcc tcl
/etc/init.d/mysqld stop
chkconfig mysqld off

tar xf redis-4.0.8.tar.gz
cd redis-4.0.8
make && make install
make test
这里写图片描述
cd utils/
./install_server.sh

Please select the redis port for this instance: [6379]
请为此实例选择redis端口:[6379]
.
Please select the redis config file name [/etc/redis/6379.conf]
.请选择redis配置文件名称[/etc/redis/6379.conf]
.
Please select the redis log file name [/var/log/redis_6379.log]
请选择redis日志文件名称[/var/log/redis_6379.log]
.
Please select the data directory for this instance [/var/lib/redis/6379]
请为此实例选择数据目录[/ var / lib / redis / 6379]
.
Please select the data directory for this instance [/var/lib/redis/6379]
请为此实例选择数据目录[/ var / lib / redis / 6379]
.
Please select the redis executable path [/usr/local/bin/redis-server]
请选择redis可执行文件路径[/ usr / local / bin / redis-server]
.
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
这个可以吗? 然后按ENTER继续或按Ctrl-C中止。

这里写图片描述
安装若有报错,(在README.md这个文件中有提示安装的方法以及遇到的报错解决方案)
redis-cli启动
config get bind
quit
这里写图片描述

四.redis主从同步


1.环境:

server1 - - - - 172.25.0.1 - - - - rhel6.5 - - - - master
server2 - - - - 172.25.0.2 - - - - rhel6.5 - - - - slave

2.Master(server1)

主配置文件:

vim /etc/redis/6379.conf
70 #bind 127.0.0.1
主从的配置文件都把bind这行注释掉,监听所有IP
89 protected-mode no
取消保护
/etc/init.d/redis_6379 restart
netstat -antlp 查看6379端口

3.slave(server2)

vim /etc/redis/6379.conf
70 #bind 127.0.0.1
89 protected-mode no
283 slaveof 172.25.0.2 6379
在从机指定主机的IP和端口
slaveof IP port ##做一主多从就在每台从机的配置文件中加上这行参数即可
/etc/init.d/redis_6379 restart

4.测试

master:
主机设定key-value
这里写图片描述
slave:
从机能获取到value值
这里写图片描述
从机默认不可以写,以免破坏数据的一致性
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zwhzwh0228/article/details/80436797