写在前面

  学习《redis入门指南》笔记,结合实践,只记录重要,明确,属于新知的相关内容。

安全

  1、可以使用bind参数绑定一个地址,使redis只接受这个地址的连接。

  2、使用requirepass参数,设置一个redis密码,使得每次客户端连接时都要发送密码,当执行复制时,如果主库设置了密码,需要在从库的配置文件通过masterauth参数设置主库的密码。

  3、对命令重命名,只需要在配置文件中配置参数rename-command,格式为:

1 rename-command 原命令名称 新命令名称

  若要禁用某个命令,可以重命名成空字符串 “” 。

通信协议

  4、redis支持两种协议,一种是比较直观的在telnet中输入的简单协议,另一种是二进制安全的统一请求协议,这两种协议只是命令的格式有区别,命令返回值的格式是一样的。

  5、简单协议适合在telnet中与redis通信,格式只是简单的将命令和各个参数以空格分开。

  6、返回值格式有5种:

    a、错误回复

      以 - 开头,加错误信息,以 \r\n 结尾

      -ERR unknown command 'haha'\r\n

    b、状态回复

  加状态信息,以\r\n结尾

  +OK\r\n

c、整数回复

  以+开头,加数字,以\r\n结尾

  +3\r\n

d、字符串回复

  以$开头,加字符串长度并以\r\n分隔,加字符串内容,以\r\n结尾

  $3\r\nPONG\r\n

  如果返回值为nil,则以$-1和空字符串区别

e、多行字符串回复

  以*开头,加字符串组数并以\r\n分隔,加字符串回复的具体内容

  *3\r\n$1\r\n3\r\n$1\r\n2\r\n$3\r\n1\r\n

7、统一请求协议的格式和多行字符串回复的格式类似,如:

  SET foo bar

  *3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n1\r\n$3\r\nbar\r\n

  redis主从复制和AOF都使用了统一请求协议
 

管理工具

  8、使用redis-cli查看耗时日志

    SLOWLOG GET

    通过配置文件参数slow-log-slower-than设置耗时命令的限制,单位为微秒,设置为负数则代表关闭慢日志;slow-max-len限制记录条数,耗时命令日志记录在内存中。每条耗时命令日志包含4个组成部分:日志唯一id、执行的UNIX时间、执行耗时(微秒)、命令及其参数。

  9、命令监控MONTITOR,执行这个命令后,redis会将所有执行的命令都会在redis-cli打印出来,这个命令会降低一半的负载能力,仅用于调试。(Instagram团队使用python开发的基于monitor命令的工具redis-faina,可以分析出最常用的命令,访问最频繁的键等信息)

  10、工具Rdbtools是一个redis的快照文件解析器,可以将快照数据导出JSON数据文件,分析redis种每个键的占用情况。也可以将每个键的存储情况导出CSV文件便于分析。示例如下:

1 rdb --command json /path/redisdump.rdb > rdboutput.json
2 rdb -c memory /path/redisdump.rdb > rdboutput.cvs

redis命令属性

11、REDIS_CMD_WRITE

  表示会修改数据库数据,只读从库不可执行这类命令,另外lua脚本中在执行了拥有REDIS_CMD_RANDOM属性的命令后,不可执行拥有此属性的命令。

12、REDIS_CMD_DENYOOM

  表示可能增加redis占用的存储空间,拥有此属性的命令必然拥REDIS_CMD_WRITE属性,反之不然。当占用空间达到配置文件maxmemory参数指定的值且根据maxmemory-policy参数无法释放空间时,会拒绝执行此类命令。

13、REDIS_CMD_NOSCRIPT

  拥有此属性的命令无法在脚本中执行

14、REDIS_CMD_RANDOM

  脚本中在执行了拥有此属性的命令后,不可执行拥有REDIS_CMD_WRITE属性的命令。

15、REDIS_CMD_SORT_FOR_SCRIPT

  拥有此属性的命令会产生随机结果,在脚本中使用时,redis会对结果进行排序。

16、REDIS_CMD_LOADING

  redis在启动时(将数据从硬盘载入到内存)只会执行拥有此属性的命令。

redis入门指南(七)—— 安全、协议、管理工具及命令属性的更多相关文章

  1. redis入门指南(二)—— 数据操作相关命令

    写在前面 以下绝大部分内容取材于<redis入门指南>,部分结合个人知识,实践后得出. 只记录重要,明确,属于新知的相关内容,杜绝冗余和重复. 字符串 1.字符串类型是redis中最常见的 ...

  2. redis入门指南-第7章-管理

    7.1 持久化 1.RDB方式 2.AOF方式 Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(poi ...

  3. redis入门指南(六)—— 集群

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 配置集群 1.配置集群,集群解决了单点故障以及单台机器内存上限的问题,使用集群时,只需要将配置文 ...

  4. 如何在 Istio 中支持 Dubbo、Thrift、Redis 以及任何七层协议?

    赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher管理委员,Istio 项目贡献者, Aerika 项目创建者 ,热衷于开源.网络和云计算.目前主要从事服务网格的开源和研发 ...

  5. Redis入门指南之三(入门)

    本节主要介绍Redis的5种数据类型,同时使用Python API来操作Redis,其中python版本为3.5, redis版本为4.0.2. redis-py 的API的使用可以分类为: (1)连 ...

  6. Redis入门指南之一(简介)

    1. 简介 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同的场景下的缓存与存储需求.同时Redis的诸多高级功能使其可以胜任消息队列.任务队列等不同的 ...

  7. Redis入门指南之二(安装及配置)

    本节主要内容 1. 前言2. redis安装3. 启动和停止Redis 1. 前言 安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么red ...

  8. Redis核心解读:集群管理工具(Redis-sentinel)

    Redis核心解读:集群管理工具(Redis-sentinel) - Redis - TechTarget数据库 Redis核心解读:集群管理工具(Redis-sentinel)

  9. redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...

随机推荐

  1. linux驱动之内核多线程(三)

    本文摘自 http://www.cnblogs.com/zhuyp1015/archive/2012/06/13/2548458.html 接上 一篇文章 ,这里介绍另一种线程间通信的方式:compl ...

  2. Robot Framework(3)——RIDE工具详解

    上一篇介绍了用RF来简单运行案例,此篇主要了解一下工具操作 一.菜单栏 1.File 1>New Project:新建工程 2>Open Test Suite:打开测试套件 3>Op ...

  3. 实用教程!SPSSAU验证性因子分析思路总结

    验证性因子分析,是用于测量因子与测量项(量表题项)之间的对应关系是否与研究者预测保持一致的一种研究方法.尽管因子分析适合任何学科使用,但以社会科学居多. 目前有很多软件都可以非常便利地实现验证性因子分 ...

  4. APP重构之路:引入单元测试

    一.为什么要引入单元测试 在开发过程中我们会遇到这样一些问题: 面对需要重构庞大的模块代码时无从下手 修改了一处地方却在另一处地方引发了新的bug 扩展新功能的同时导致旧代码出现bug 在测试人员难以 ...

  5. 火狐Firefox 52.90版是最后一个支持WinXP和Vista的版本

    Firefox 52.90版是最后一个支持 Windows XP 和 Windows Vista 的升级版.(参考:https://support.mozilla.org/zh-CN/kb/firef ...

  6. Typescript | Vue3源码系列

    TypeScript 是开源的,TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript.编译出来的 JavaScript 可以运行在任何浏览器上.TypeS ...

  7. Android开发之华为手机无法看log日志解决方法(亲测可用华为荣耀6)

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, 转载请说明出处. 在上家公司上班的时候,公司配了华为荣耀6的测试机,发现在eclipse下 无法查看 ...

  8. C++轻量级跨平台文件系统API

    http://en.cppreference.com/w/cpp/experimental/fs https://www.starmessagesoftware.com/cpcclibrary htt ...

  9. HTML5 Drag & Drop

    一定要区分不同事件产生的对象 源元素 属性:draggable = "true" 事件: ondragstart:开始拖拽 ondragend:拖拽结束 目标元素 事件: ondr ...

  10. Linux下安装Sublime Text 3 及使用快捷方式

    1.添加sublime text3的仓库 首先按下快捷键ctrl+alt+t打开终端: 在终端输入:sudo add-apt-repository ppa:webupd8team/sublime-te ...