----------------------------------------安装redis-5.0.4----------------------------------------

wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar zxvf redis-5.0..tar.gz -C /usr/local/
mv /usr/local/redis-5.0. /usr/local/redis
cd /usr/local/redis
make

修改配置文件

bind 192.168.100.101    #配置监听地址
protected-mode no #关闭保护模式,允许外网连接数据库
daemonize yes #开启以后台方式运行
logfile "/usr/local/redis/log/redis.log" #日志文件路径
dir /usr/local/redis/ #dump快照存放路径
mkdir /usr/local/redis/log;touch /usr/local/redis/log/redis.log  #创建日志文件

创建命令链接

ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis
ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis-cli
ln -s /usr/local/redis/src/redis-server /usr/local/bin/redis-server

设置redis开机自启动

echo "redis-server /usr/local/redis/redis.conf" >> /etc/rc.local
chmod +x /etc/rc.local

启动redis服务

redis-server /usr/local/redis/redis.conf

测试连接

redis-cli

安装过程可能出现的问题

1.CentOS默认没有安装gcc,这会导致我们无法make成功

yum install gcc-c++ -y  #解决办法:yum安装开发环境

2.make时报如下错误:

zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory

#include <jemalloc/jemalloc.h>

              ^

compilation terminated.

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/root/redis-5.0.4/src'

make: *** [all] Error 2

原因是jemalloc重载了Linux下的ANSI C的malloc和free函数

make MALLOC=libc  #解决办法:make时添加参数

3.make之后,会出现一句提示

Hint: To run 'make test' is a good idea ;)

但是不测试,通常是可以使用的;若我们运行make test ,会有如下提示

[devnote@devnote src]$ make test

You need tcl 8.5 or newer in order to run the Redis test

make: ***[test] Error_1

yum install tcl -y  #解决办法:yum安装tcl8.5

----------------------------------------redis持久化方式----------------------------------------

RDB持久化:将Reids在内存中的数据库记录定时dump到磁盘上,类似于快照功能(半持久化模式)

RDB方式配置:vim /usr/local/redis/redis.conf
save #开启RDB快照功能,在900秒内完成一个key值得变动触发快照功能,如若将所有save配置项都注释掉,那么则将关闭RDB快照功能
save
save
stop-writes-on-bgsave-error yes #当RDB快照后台进程失败,不影响用户得写操作
rdbcompression yes #是否将RDB快照文件压缩,关闭后会增加性能
rdbchecksum no #关闭RDB快照文件的检查校验,增加性能
dbfilename dump.rdb #快照文件的名称
dir ./ #快照文件的存储路径,./为redis的安装目录下

AOF持久化:append only file--原理是将Reids的操作日志以追加的方式写入文件,近似实时性(全持久化模式)

AOF持久化方式配置:vim /usr/local/redis/redis.conf
#save
#save
#save
appendonly yes #开启AOF持久化方式
appendfilename "appendonly.aof" #指定持久化的文件
appendfsync everysec #频率,具体参数见下表
no-appendfsync-on-rewrite no #如若设置为yes,则redis执行的命令会存放到缓冲区,待系统自动同步到硬盘
auto-aof-rewrite-percentage #若当前写入的AOF文件达到了上次rewrite文件大小的100%,则触发rewrite操作
auto-aof-rewrite-min-size 64mb #设置AOF持久化重写文件的最小值,当达到60M并且符合100%的条件时,则触发rewrite操作
选项 同步频率
always 每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,所以其性能也会受到影响
everysec 默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘,但是当这一次的fsync调用时长超过1秒时。Redis会采取延迟fsync的策略,再等一秒钟。也就是在两秒后再进行fsync,这一次的fsync就不管会执行多长时间都会进行
no redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上

----------------------------------------redis主从复制----------------------------------------

同步类型:

1.全量同步:

redis全量复制一般发生在Replica初始化阶段,这时Replica需要将Master上的所有数据都复制一份。具体步骤如下:

1)从服务器连接主服务器,发送SYNC命令(从服务器向主服务器初次同步时,不会影响主服务器接收客户端的请求);

2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;

3)主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;

4)从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;

5)主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;

6)从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

完成上面几个步骤后就完成了从服务器数据初始化的所有操作,从服务器此时可以接收来自用户的读请求

2.增量同步:

redis增量复制是指Replica初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。 增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令

同步策略:

主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步;如果有需要Replica在任何时候都可以发起全量同步;redis策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步

注:如果多个Replica断线了,需要重启的时候,因为只要Replica启动,就会发送sync请求和主机全量同步,当多个同时出现的时候,可能会导致Master IO剧增导致宕机

建议开启master主服务器的持久化功能,避免出现master重启后,数据无法恢复;

主从配置:

Master配置 vim /usr/local/redis/redis.conf
min-replicas-to-write #设置replica节点的数量,如果replica节点数量少于此值,那么master节点将停止客户端的一切写请求
min-replicas-max-lag #master与replica之间同步数据的超时时间,若超过此时间,master节点将停止客户端的一切写操作
Replica配置 vim /usr/local/redis/redis.conf
replicaof 192.168.100.101 #指定master的ip地址以及端口
masterauth #指定master的连接密码
验证主从复制
192.168.100.101:> info replication #查看复制信息

redis数据库安装 redis持久化及主从复制的更多相关文章

  1. Redis高可用(持久化、主从复制、哨兵、集群)

    Redis高可用(持久化.主从复制.哨兵.集群) 目录 Redis高可用(持久化.主从复制.哨兵.集群) 一.Redis高可用 1. Redis高可用概述 2. Redis高可用策略 二.Redis持 ...

  2. Asp.net MVC + Redis(Linux安装Redis)

    最近有幸在工作中用到了redis,玩的还算开心.但是发现Redis在Windows上并不是满血状态的,所以决定安装一个Linux的虚拟机,让Redis在Linux上运行. 虚拟环境 虚拟机,我已经玩了 ...

  3. Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ]

    Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ] 一.安装Redis和简单配置 1. 下载Redis安装包 地址:http://redis.io/download , 本文选择 ...

  4. Redis数据库 02事务| 持久化| 主从复制| 集群

    1. Redis事务 Redis不支持事务,此事务不是关系型数据库中的事务: Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的 ...

  5. NoSQL数据库之Redis数据库:Redis的介绍与安装部署

     NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的w ...

  6. 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存

     事务处理 Redis对事务的支持目前还比较简单.Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令.当一个client在一个连接中发出mul ...

  7. redis 数据库安装和基本使用

    Redis 介绍: Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值可以包 ...

  8. Linux服务器运行环境搭建(二)——Redis数据库安装

    官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...

  9. Redis数据库安装与配置调试

    主要培养自我对Redis数据库安装能力, 并且进行个性化的数据库配置.掌握本实验的重点,即在于数据库的安装与启动参数的配置.同时,理解NOSQL数据库的体系结构. ①下载Redis安装包进行数据库平台 ...

随机推荐

  1. 一款Android图文识别与扫描软件

    OCR图文识别App 是一款准确高效的 OCR文字识别与扫描软件,识别准确度高,速度快,扫描文件清晰,可导出TXT.Excel. 免费使用. 技术 基于百度在业界领先的人工智能与深度学习技术,提供对身 ...

  2. Oracle数据库升级注意事项

    1 备份配置参数 数据库升级前的配置参数要备份,如PGA大小 这样数据库升级后还可以升级前的配置,而不至于使用安装升级时的默认配置 2 检查版本兼容 确认数据库升级后是否对生产环境上的代码有影响,如果 ...

  3. SQL学习(1)初学实验:SQL Server基本配置及基本操作

    网络配置.远程连接配置: 防火墙设置: SQL Server的默认端口号是1433. 网络配置: SQLServer Configuration Manager中的客户端协议,众多IP中随便选一个,比 ...

  4. win10彻底禁用自动更新,win10怎样彻底关闭自动更新,永久关闭win10自动更新,win10更新助手

    首先,请广大win10受害者原谅小菜用一个如此长的标题来吸引你们,为了尽最大努力帮助那些饱受win10自动更新折磨的朋友们,小菜不得已出此下策,望见谅! windows 10是一个神奇的操作系统,当你 ...

  5. CF592D Super M

    嘟嘟嘟 首先这题虽然不是很难,但是黄题是不是有点过分了--好歹算个蓝题啊. 手玩样例得知,这哥们儿瞬移到的城市\(A\)一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市\(B\)和\ ...

  6. LOJ #6051. 「雅礼集训 2017 Day11」PATH

    完了感觉最近留了好多坑的说,这题也是模模糊糊地会一点 首先我们发现题目要求的是单调不上升的序列个数,那么一个套路就是用值减去下标 然后考虑连续位置的限制,这个我们做一个置换然后尽量向后取 这样拿值和位 ...

  7. webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件

    一 .webpack学习环境准备: 1:window系统 2:安装node.js  官方网址 下载好后下一步下一步安装即可 安装步骤略过....... 3:nrm的安装 打开cmd命令控制台 输入:n ...

  8. Vue(day5)

    一.监听数据变化的三种形式 假设我们需要提供两个输入框,分别输入姓和名,然后自动拼接为姓名.这样,我们就需要监听输入框的数据变化,让完整的姓名跟随输入的变动而变化.我们可以使用以下三种方式: 1.结合 ...

  9. 3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件

    1.检查当前文件状态 --  git status  git diff  git diff --staged   git status :我们可以使用 git status 来查看文件所处的状态.当运 ...

  10. Android状态栏着色

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 状态栏着色,也就是我们经常听到的沉浸式状态栏,关于沉浸式的称呼网上也有很多吐槽的,这里就不做过多讨论了,以下我们统称状态栏着色,这样 ...