redis安全及必备知识

redis安全及必备知识

一.redis安全

为redis设置密码命令行的模式(重启后失效): 
查看密码:

CONFIG GET requirepass

密码认证:

AUTH password

设置密码:

CONFIG SET requirepass "password"

127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> CONFIG SET requirepass "abc123"
OK
127.0.0.1:6379> CONFIG GET requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH "abc123"
OK
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) "abc123"

在redis配置文件中设置密码,在requirepass后面直接加密码即可:

requirepass abc123456

在配置文件中指定不能使用的命令:

rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command SHUTDOWN ""
rename-command KEYS ""
rename-command MONITOR ""

二.redis性能测试

所谓性能测试就是在大并发下看redis的响应速度。可以通过redis-benchmark这个redis自带的测试命令来测试。

# redis-benchmark -n 100000 -q
PING_INLINE: 62111.80 requests per second
PING_BULK: 50100.20 requests per second
SET: 68823.12 requests per second
GET: 69348.12 requests per second
INCR: 69979.01 requests per second
LPUSH: 67842.61 requests per second
RPUSH: 68965.52 requests per second
LPOP: 69589.42 requests per second
RPOP: 66889.63 requests per second
SADD: 65061.81 requests per second
HSET: 52938.06 requests per second
SPOP: 56401.58 requests per second
LPUSH (needed to benchmark LRANGE): 45167.12 requests per second
LRANGE_100 (first 100 elements): 63451.78 requests per second
LRANGE_300 (first 300 elements): 47938.64 requests per second
LRANGE_500 (first 450 elements): 67796.61 requests per second
LRANGE_600 (first 600 elements): 68352.70 requests per second
MSET (10 keys): 63131.31 requests per second
-h 指定主机名
-p 指定端口
-c 指定并发数
-n 指定请求数
-q 强制退出 redis。仅显示 query/sec 值
-l 生产循环,永久执行测试

三. 持久化机制

redis是一个支持持久化的内存数据库,也就是redis需要经常将内存中的数据库同步到硬盘来保证持久化。 
redis支持两种持久化方式:

RDB(snapshotting快照的方式(默认)) 
AOF(append-only file)的方式

RDB方式: 
RDB是默认的持久化方式,这种方式是将内存中的数据以快照的方式写入二进制文件中(dump.rdb)。 
配置方式:

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存 
save 300 10 #300秒内如果超过10个key被修改,则发起快照保存 
save 60 10000 #60秒内如果超过10000个key被修改,则发起快照保存

aof方式: 
快照是按照一定时间间隔或者规则来进行的,但是如果redis意外down掉,就会丢失最后一次快照的修改的数据。aof的方式具有更好的持久化性能。在使用aof时,redis会将每个收到的写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来内存中重建整个数据库的内容。当然由于os会在内核中缓存write做的修改,所以可能不是立即写入磁盘上,这样aof方式的持久化也还是有可能会丢失部分修改。可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机。 
配置方式:

appendonly yes  # 启动aof持久化方式
appendfilename "appendonly.aof"  #指定aof文件名称
# appendfsync always  # 收到写命令就立即写入磁盘最慢,但是保证完全的持久化
appendfsync everysec  # 每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中处理
# appendfsync no  # 完全依赖os,性能最好持久化没保证

四. redis事务

redis事务可以一次执行多个命令。 
一个事务从开始到执行会经历以下三个阶段:

  • 开始事务(MULTI)
  • 命令入队
  • 执行事务(EXEC)
    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> SET name "jack"
    QUEUED
    127.0.0.1:6379> GET name
    QUEUED
    127.0.0.1:6379> SADD tag "C++" "python" "java" "c#"
    QUEUED
    127.0.0.1:6379> SMEMBERS tag 
    QUEUED
    127.0.0.1:6379> EXEC
    1) OK
    2) "jack"
    3) (integer) 4
    4) 1) "java"
       2) "C++"
       3) "c#"
       4) "python"
DISCARD 取消事务,放弃执行事务内的所有命令
EXEC 执行所有事务块的命令
MULTI 标记一个事务块的开始
UNWATCH 取消WACTCH命令对所有key的监控
WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

原文地址:http://blog.51cto.com/dianel/2145596

时间: 2024-10-10 13:39:41

redis安全及必备知识的相关文章

<转载>Div+Css布局教程(-)CSS必备知识

目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的高度(Height:45px;). Background:设置对象的背景颜色.背景图像. 1.背景颜色 background:#09F; 2.背景图像 background:url(file:///C|/Users/Administrator/Desktop/huipu.jpg) repeat-x;

移动端webapp开发必备知识

移动端webapp开发必备知识 移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动终端的WebAPP也开始跟进了.本文主要介绍webapp的开发与调试的相关知识和经验,以及给出几种可选的解决方案. 一.基本概念 (1) CSS pixels与device pixels CSS pixels: 浏览器使用的抽象单位, 主要用来在网页上绘制内容. device pixels: 显示屏幕的的最小物理单位,每个dp包含自己的颜色.亮度. 等值的 CSS pixe

学好Linux必备知识

鸟哥的私房菜中提到学好Linux必备的几种技能: 1.  计算器概论不硬件相关知识: 因为既然想要走Linux这门路,信息相关癿基础技能也丌能没有啊! 所以先理觋一下基础癿硬件知识,丌用一定要全懂啦!又丌是真癿要你去组计算机-^_^, 但是至少要『吩过.有概忛』卲可: 2.  先从Linux癿安装不挃令学起: 没有Linux怂举学习Linux呢?所以好好癿安装起一套你需要癿Linux吧!虽然说Linux distributions很多, 丌过基本上架构都是大同小异癿,差别在亍接口癿亲呾力不软件癿

Div+Css布局教程(-)CSS必备知识

目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的高度(Height:45px;). Background:设置对象的背景颜色.背景图像. 1.背景颜色 background:#09F; 2.背景图像 background:url(file:///C|/Users/Administrator/Desktop/huipu.jpg) repeat-x;

移动web开发(一)——移动web开发必备知识

参考: 移动终端开发必备知识.http://isux.tencent.com/mobile-development-essential-knowledge.htm

微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战

微软实战训练营 上海交大(A)实验班.(X)重点班 内部课程资料 链接:http://pan.baidu.com/s/1jGsTjq2 密码:0wmf <微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web Service开发实战>微软实战训练营 上海交大(A)实验班.(X)重点班 .(E)英语口语班http://54peixun.com/MSTrainingCamp/index.html 微软实战训练营(X)重点班第(1)课:SOA必备知识之ASP.NET Web S

ES6常用必备知识

ES6必备知识 1.变量声明const和let 在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: function aa() { if(bool) { var test = 'hello man' } else { console.log(test) } } 以上的代码实际上是: function aa() { var test // 变量提升 if(bool) { test = 'hello

ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)

原文:ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识) 前言 在上篇文章中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序,本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程,来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问. 如果你以后用准备使用 asp.net core来开发项目的话,程序并且部署到 Linux 上的话,那么此篇文章你值得收藏. 如果你觉得对你有帮助的话

asp.net core系列 30 EF管理数据库架构--必备知识 迁移

原文:asp.net core系列 30 EF管理数据库架构--必备知识 迁移 一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为准,请使用迁移. 对 EF Core 模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库,以使数据库保持与 EF Core 模型兼容.  (2)如果希望以数据库架构为准,请使用反向工程. 使用此方法,可通过将数