1、安全管理

1)绑定指定IP

Redis的安全设计是在“Redis运行在可信环境”这个前提之下的,在生产环境中建议通过应用程序连接Redis。Redis可以配置只接受来自指定IP的的请求,可通过修改配置文件中的bind来实现,如下:

bind 127.0.0.1

2)设置密码

除此之外,还可以配置requirepass选项来设置密码,如:

requirepass root

配置好重启后ping一下试试

> ping
(error) NOAUTH Authentication required.
> auth root
OK
> ping
PONG

设置了密码之后,jedis需要这么连接Redis

public static void main(String[] args) {
    Jedis jedis = new Jedis("localhost");
    jedis.auth("root");
    System.out.println(jedis.ping());
}

 3)重命名命令

Redis还允许通过配置rename-command重命名命令,如keys *这样的命令在数据量较大的正式环境运行的时候会导致数据库CPU飙升、数据库锁住甚至宕机的后果,因此可以可以修改命令避免该命令被误用。

开启此项功能,需要配置:

rename-command ping iamping

结果:

> ping
(error) ERR unknown command `ping`, with args beginning with:
> iamping
PONG

2、耗时命令日志与命令监控

1)耗时命令日志

当一条命令执行的时间超过限制的时候,redis会将其加入耗时命令日志供开发者查看。相关的配置如下:

slowlog-log-slower-than 10000 //时间限制,超过时间的加入日志(单位是微秒,即1 000 000相当于1s)
slowlog-max-len 128 //限制记录的条数

查看耗时命令日志的方式:

> slowlog get
   ) (integer)
   ) (integer)
   ) (integer)
   ) ) "flushall"
   ) "127.0.0.1:33234"
   ) ""

每条日志的格式如下:

()该日志唯一ID
()该命令的UNIX时间
()该命令的耗时时间,单位是微秒
()命令及其参数
()请求的IP及端口

2)命令监控

redis提供monitor命令来监控redis执行的所有命令,因为该命令严重影响性能,只适合开发人员调试。

应用如下,开启两个客户端,一个输入monitor,然后在另一个客户端执行get命令,monitor的客户端显示如下:

> monitor
OK
 ] "get" "foo"

 3、phpRedisAdmin

这个工具支持树形结构查看键列表,编辑键值,导入/导出数据库数据,查看数据库信息和查看键信息,类似于Mysql的phpMyAdmin工具,可以在github上下载安装。

4、Rdbtools

Rdbtools是一个Redis的快照文件解析器,可以根据快照文件导出JSON数据文件、分析redis中每个键的占用空间情况。下载安装见github。

使用步骤:

()使用save命令生成快照文件
()将快照导出为JSON格式
rdb --command json /path/to/dump.rdb > output_filename.json
 ()生成空间使用情况报告
rdb -c memory /path/to/dump.rdb > out_filename.csv

csv文件字段说明

字段 说明
database 存储该键的数据库索引
type 键类型(使用type命令获得)
key 键名
size_in_bytes 键大小(字节)
encoding 内部编码(通过OBJECTENCODING获得)
num_elements 键的元素数
len_largest_element 最大元素的长度

Redis管理:安全/耗时命令日志与命令监控/数据库管理工具的更多相关文章

  1. Redis管理各类型存储数据命令

    >>>字符串 1 SET key value 设置指定 key 的值 2 GET key 获取指定 key 的值. 3 GETRANGE key start end 返回 key 中 ...

  2. Redis运维的一些常用的命令总结

    最近一直管理部门的一些redis的服务器,所以现在来总结一下redis的一些常用的运维命令: 1.time  显示服务器的时间,时间戳(秒) 微秒数 redis 127.0.0.1:6380> ...

  3. 转 -Filebeat + Redis 管理 LOG日志实践

    Filebeat + Redis 管理 LOG日志实践 小赵营 关注 2019.01.06 17:52* 字数 1648 阅读 24评论 0喜欢 2 引用 转载 请注明出处 某早上,领导怒吼声远远传来 ...

  4. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  5. Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令

    Redis 的键命令.HyperLogLog 命令.脚本命令.连接命令.服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键.查询键.修改键及设置某个键等. ...

  6. SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)

      SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很 ...

  7. Redis进阶实践之十五 Redis-cli命令行工具使用详解第二部分(结束)

    一.介绍           今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分.话不多说,开始我们今天的讲解.如果要想看第一篇文章,地址如下:http: ...

  8. Redis源码学习-Master&Slave的命令交互

    0. 写在前面 Version Redis2.2.2 Redis中可以支持主从结构,本文主要从master和slave的心跳机制出发(PING),分析redis的命令行交互. 在Redis中,serv ...

  9. Redis进阶实践之十四 Redis-cli命令行工具使用详解

    转载来源:http://www.cnblogs.com/PatrickLiu/p/8508975.html 一.介绍 redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西.现在redi ...

随机推荐

  1. 多进程—进程同步控制,IPC

    multiprocessing包—Process模块开启多进程的两种方式,Process的方法,守护进程 进程同步控制—multiprocessing.Lock  multiprocessing.Se ...

  2. golang 报错illegal rune literal

    记录一下,今天运行一端代码遇到这个报错"illegal rune literal",代码如下: func main() { http.HandleFunc('/login', lo ...

  3. Guess Number Game

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...

  4. inode 与black 特点与简介

    inodo为索引节点, 存放文件属性的信息(实际文件位置与容量信息 /black文件属性) 作用在格式化文件系统时候产生 创建一个文件就占用一个inode 数字相同为硬链接 black为实际数据/内容 ...

  5. 关于空指针NULL、野指针、通用指针 (转)

    reference:https://www.cnblogs.com/losesea/archive/2012/11/16/2772590.html 首先说一下什么是指针,只要明白了指针的含义,你就明白 ...

  6. c# 抽象类与接口【学习笔记】

    最近一直在学着面向接口编程,总是会写出好多的接口然后继承,现在开始发现了一些好处,就是在一个方法里面使用另一个方法的时候, 用接口代替这个被使用的方法,可以减少代码的耦合,后期的扩展也方便,代码易于维 ...

  7. HDU1171将多个不同价值不同数量的器材尽可能按等价值均分 第一份的价值尽可能的大 所以sum/2对第二份进行01背包 使其价值尽可能的大

    //hdu1171void solve(){ for(int i=1;i<=n;i++) { for(int j=W;j>=w[i];j--) { dp[j]=max(dp[j],dp[j ...

  8. ecmall 移动端 微信分享

    /* 用户判断是否在微信端 */ $this->assign('isWeixin', isWeixin()); //isWeixin() 在系统核心基础类的ecmall.php里定义好了 是微信 ...

  9. golang sync.Cond条件变量的使用

    cond.Wait()的操作实际上是对与cond绑定的锁先进行解锁,在等待通知:接收到通知后,会尝试加锁,加锁成功则唤醒否则继续等待通知: cond.Waite()前必须对关连锁加锁,否则panic ...

  10. c——根据天数输出日期

    <c语言程序设计>(第三版)何钦铭 P190 #include<stdio.h> void month_day(int year,int yearday,int *pmonth ...