前言:Redis的使用越来越重要、以下仅为个人学习的点点记录、仅供参考。

一、简单的redis安全性设置

1. 生产环境的redis最好建议在redis配置文件中设置bind。配置允许指定的ip登陆redis。

//下面ip仅供参考、具体根据您个人的生产环境进行配置
bind 127.0.0.1

2. 在redis.conf或者命令行中给redis设置密码(建议密码尽量设置复杂一些)

//redis.conf中添加配置
requirepass "your password" //或者执行命令
redis> CONFIG set requirepass "your password" //重启完redis后使用 redis-cli -a your password 应该就可以成功使用密码登陆redis

一、redis持久化说明

1. RDB方式持久化方式 (save 和 bgsave方式)

  • save为同步的方式保存内存中的数据快照到磁盘。由于redis是单进程的。因此这种方式阻塞了redis client对redis的访问。
  • bgsave方式、redis会fork出一个子进程来处理快照保存。
  • RDB持久化方式都是将内存数据完整的写入磁盘上一个临时RDB文件中。通常为 dump.rdb文件(保存着二进制数据),使用locate dump.rdb找到这个文件可以使用以下命令查看文件内容。或者通过redis.conf中的dir xxxxx配置也可以查看你的rdb文件保存位置。
  • localhost:redis miaoshiqian [master] $ od -c dump.rdb
    R E D I S \ \ m i a
    o \a s h i q i a n C N z
    a
  • dump.rdb是经过压缩的二进制文件、它占用的空间小于数据在内存中占用空间。
  • 以下简单介绍下和RDB持久化方式关系较大的几个配置项:
  • //dir配置rdb二进制文件保存再磁盘的那个位置
    dir /usr/local/var/db/redis/ //dbfilename配置保存的文件名
    dbfilename dump.rdb //rdbcompression 配置是否使用压缩来保存二进制文件 默认yes
    rdbcompress yes //save配置(最重要)
    save //900秒之内如果有1个键被修改的话进行快照
    save //300秒之内如果有10个键被修改的话进行快照
    save //60秒之内如果有10000个键被修改的话进行快照

    由于redis在启动的时候会读入磁盘上面的rdb文件、以达到数据恢复。从而达到持久化的目的,因此像RDB这种从内存问磁盘dump快照的方式有几个缺点:

  • 如果当redis异常死掉时,最近的数据会丢失(最后一次保存快照以后的所有数据修改会丢失、丢失数据的多少视你save策略的配置),所以这是它最大的缺点,当业务量很大时,丢失的数据是很多的。
  • 快照每次都是将内存中的全部数据dump到磁盘上面。势必导致磁盘大量的IO开销。数据量越大越明显。

2. AOF持久化方式

  • 说白了其实aof方式就是一个xxx.aof文件保存下了所以redis执行的写命令。因此在redis启动的时候、只需要按顺序执行该文件中保存的全部写命令就可以实现数据持久化。
  • aof的实现分为 “命令追加”、“文件写入”、“文件同步” 三个步骤。
  • 命令追加:redis再执行一条写命令后,会以协议格式写入redis在内存中开辟的一块aof_buf缓冲区的末尾。
  • 命令写入与同步:服务器结束一个事件循环之前调用flushAppendOnlyFile函数、考虑是否将aof_buf内的内容写入保存到aof文件里面。此函数的行为由redis.conf中的appendfsync 的配置项来决定的。
  • appendfsync的配置项的值说明如下:
  • //将aof_buf中的所有内容写入并同步到aof
    appendfsync always //将aof_buf中所有内容写入aof文件、是否同步取决于上次同步到当前的时间是否超过1s。超过则同步。且同步是由一个专门的线程来完成的。
    appendfsync everysec //讲所有aof_buf缓冲区中的内容写入aof文件。但是不进行同步操作。
    appendfsync no

    AOF持久化相关的redis配置项除了上面的appendfsync以外还有以下几个:

  • //决定是否开启aof持久化。默认为no。redis默认使用rdb实现持久化。
    appendonly no //同rdb种的dir配置一样、决定了aof文件存放再哪里。
    dir /usr/local/opt/redis/ //aof的文件名
    appendfilename appendonly.aof //再aof文件的大小超过上次重写时aof文件的大小的 百分之多少时会进行重写。
    auto-aof-rewrite-percentage //当aof文件至少达到多大时才进行重写
    auto-aof-rewrite-min-size 64mb //重写概念的简单解释如下:
    //由于aof文件中保存各种写命令、而会导致文件迅速膨胀。其实很多写命令可以整理为少数几条写命令而达到一样的效果。重写简单讲就是负责对冗长的写命令进行整理。auto-aof-rewrite-min-size 限制大小就意味着比这个配置小的aof文件没有整理的必要。

    以上仅仅为个人总结~,各位选择性的吸收即可。

Redis安全与持久化(适合小白阅读)的更多相关文章

  1. .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇

    .net core +codefirst(.net core 基础入门,适合这方面的小白阅读)   前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以. ...

  2. Redis提供的持久化机制(RDB和AOF)

    Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...

  3. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  4. Redis提供的持久化机制(RDB和AOF)【转载】

    Redis提供的持久化机制    Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近 ...

  5. redis两种持久化方式的优缺点

    redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以 ...

  6. Redis中的持久化操作

       本篇博客主要来解说一下怎样Redis中的持久化操作,当然了不是一篇理论性的博客,主要还是分享一下在redis中怎样来配置持久化操作.  1.介绍  redis为了内部数据的安全考虑,会把本身的数 ...

  7. 一文了解:Redis的RDB持久化

    一文了解:Redis的RDB持久化 Redis是内存数据库,为了保证数据不在故障后丢失,Redis需要将数据持久化到硬盘上. Redis持久化有两种方式:一种是快照,全量备份.一种是AOF方式,连续增 ...

  8. Redis提供的持久化机制

    Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近日,Redis的作者在博客中写到, ...

  9. Redis基础与持久化

    Redis介绍 软件说明 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(Dat ...

随机推荐

  1. ios截屏事件监听

    目的:实现截屏反馈,类似支付宝的截屏上传反馈功能. 1.注册全局通知,在Appdelegate中注册截屏监听通知 - (void)registNotification{ [[NSNotificatio ...

  2. python的for else语句

    Python循环中的else语句 绝大部分编程语言中都有条件判断语句,比如 if … else ,在大部语言中,else 一般只在条件判断语句中出现,与 if 语句配套出现,不过在 Python 中, ...

  3. Vuzzer自动漏洞挖掘工具简单分析附使用介绍

    Vuzzer 是由计算机科学机构  Vrije Universiteit Amsterdam.Amsterdam Department of Informatics 以及 International ...

  4. windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)

    windows server 证书的颁发与IIS证书的使用   最近工作业务要是用服务器证书验证,在这里记录下一. 1.添加服务器角色 [证书服务] 2.一路下一步直到证书服务安装完成; 3.选择圈选 ...

  5. C语言之基本算法25—牛顿迭代法求方程近似根

    //牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16 ...

  6. linux恢复误删除文件-extundelete

     经过本人測试该工具支持ext3和ext4文件系统 当发现某个分区的数据被误删除后.要做的第一件事是立马卸载被误删除文件所在的分区,或者又一次以仅仅读方式挂载此分区. 这么做的原因事实上非常eas ...

  7. Lunix

    1.Lunix系统登录.重启.关闭 ①.登录 ②.重启 ③.关闭:shutdown [选项][时间][警告信息] -k 向所有用户发出警告信息 -r 关机后立即重启 -h 关机后不重新启动 -f 快速 ...

  8. MySQL-PREPARE语句

    MySQL-PREPARE语句 功能介绍: MySQL准备语句用法 为了使用MySQL准备语句,您需要使用其他三个MySQL语句如下: PREPARE - 准备执行的声明. EXECUTE - 执行由 ...

  9. Restful WebService简介

    RESTful Web Services已经渐渐開始流行, 主要是用于解决异构系统之间的通信问题.非常多站点和应用提供的API,都是基于RESTful风格的Web Services,比較就有Googl ...

  10. Bing必应地图中国API入门讲座之八:显示驾车路线

    Bing必应地图中国API入门讲座之八:显示驾车路线 2011-05-24 14:47:36|  分类: Bing&Google|字号 订阅     这篇文章非常值得纪念,因为我是在Googl ...