Redis安全与持久化(适合小白阅读)
前言: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 noAOF持久化相关的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安全与持久化(适合小白阅读)的更多相关文章
- .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
.net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 前言 .net core mvc和 .net mvc开发很相似,比如 视图-模型-控制器结构.所以. ...
- Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...
- mysql主从复制、redis基础、持久化和主从复制
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...
- Redis提供的持久化机制(RDB和AOF)【转载】
Redis提供的持久化机制 Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近 ...
- redis两种持久化方式的优缺点
redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以 ...
- Redis中的持久化操作
本篇博客主要来解说一下怎样Redis中的持久化操作,当然了不是一篇理论性的博客,主要还是分享一下在redis中怎样来配置持久化操作. 1.介绍 redis为了内部数据的安全考虑,会把本身的数 ...
- 一文了解:Redis的RDB持久化
一文了解:Redis的RDB持久化 Redis是内存数据库,为了保证数据不在故障后丢失,Redis需要将数据持久化到硬盘上. Redis持久化有两种方式:一种是快照,全量备份.一种是AOF方式,连续增 ...
- Redis提供的持久化机制
Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近日,Redis的作者在博客中写到, ...
- Redis基础与持久化
Redis介绍 软件说明 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(Dat ...
随机推荐
- JSP服务器响应
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/server-response.html: 当一个Web服务器响应浏览器的HTTP请求时,响应通常包括一个 ...
- JS中的apply、call、bind区别
apply.call.bind 用法 1:作用 改变函数运行时的上下文,即改变this的指向问题. xxxFunction.call(this,arg1,arg2,arg3); xxxFunction ...
- phpunit 单元测试框架-代码覆盖率
"phpize not found" 的解决办法: apt-get install php5-dev http://jeffreysambells.com/2010/04/08/r ...
- [转]chrome 的devtools 中setting 开启workspace , 也有点用处。不是很大
转载的,原文: http://wiki.jikexueyuan.com/project/chrome-devtools/saving-changes-with-workspaces.html ---- ...
- Lightoj 1027 - A Dangerous Maze 【期望】
1027 - A Dangerous Maze PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Y ...
- 改动Centosserver主机名称
1.暂时改动server主机名称: hostname myhost. myhost为你指定的主机名称. 2.永久性的改动主机名称 Centosserver安装好之后.默认的主机名为:localhost ...
- openstack (3)---------部署memcached缓存服务,keystone服务
一.memcached概念 Memcached 是一个开源的.高性能的分布式内存对象缓存系统.通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高网站访问速度,加速动态WEB应用.减轻数据库负载 ...
- 华为OJ:数字颠倒
将数字转成一个字符串即可了. import java.util.Scanner; public class convertNumber { public static void main(String ...
- 人脸和性别识别(基于OpenCV)
描写叙述 人脸识别包含四个步骤 人脸检測:定位人脸区域,仅仅关心是不是脸: 人脸预处理:对人脸检測出来的图片进行调整优化. 收集和学习人脸:收集要识别的人的预处理过的人脸,然后通过一些算法去学习怎样识 ...
- UVA-10163 Storage Keepers DP
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...