Redis管理:安全/耗时命令日志与命令监控/数据库管理工具
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管理:安全/耗时命令日志与命令监控/数据库管理工具的更多相关文章
- Redis管理各类型存储数据命令
>>>字符串 1 SET key value 设置指定 key 的值 2 GET key 获取指定 key 的值. 3 GETRANGE key start end 返回 key 中 ...
- Redis运维的一些常用的命令总结
最近一直管理部门的一些redis的服务器,所以现在来总结一下redis的一些常用的运维命令: 1.time 显示服务器的时间,时间戳(秒) 微秒数 redis 127.0.0.1:6380> ...
- 转 -Filebeat + Redis 管理 LOG日志实践
Filebeat + Redis 管理 LOG日志实践 小赵营 关注 2019.01.06 17:52* 字数 1648 阅读 24评论 0喜欢 2 引用 转载 请注明出处 某早上,领导怒吼声远远传来 ...
- 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网络知识 第十五节课 ...
- Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令
Redis 的键命令.HyperLogLog 命令.脚本命令.连接命令.服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键.查询键.修改键及设置某个键等. ...
- SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)
SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很 ...
- Redis进阶实践之十五 Redis-cli命令行工具使用详解第二部分(结束)
一.介绍 今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分.话不多说,开始我们今天的讲解.如果要想看第一篇文章,地址如下:http: ...
- Redis源码学习-Master&Slave的命令交互
0. 写在前面 Version Redis2.2.2 Redis中可以支持主从结构,本文主要从master和slave的心跳机制出发(PING),分析redis的命令行交互. 在Redis中,serv ...
- Redis进阶实践之十四 Redis-cli命令行工具使用详解
转载来源:http://www.cnblogs.com/PatrickLiu/p/8508975.html 一.介绍 redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西.现在redi ...
随机推荐
- 一个简易的allocator
#include <vector> #include <iostream> #include <algorithm> using namespace::std; t ...
- 计时 timeit
python中的计时器:timeit timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit #导 ...
- HTML5:表格相关标记及其属性
表格相关标记及其属性 <table>:表格,包括以下属性 属性 说明 width 宽度(有像素和百分比两种表示方法) height 高度(有像素和百分比两种表示方法) border 边框粗 ...
- ubuntu 升级 python3.5到 python3.6
首先是在Ubuntu中安装python3.6 sudo apt-get install software-properties-common sudo add-apt-repository ppa:j ...
- Matlab_xcorr_互相关函数的讨论
假设两个平稳信号 $\textbf{x}$ 和 $\textbf{y}$ ,如果 $x\left(t+\tau\right)= y\left(t\right)$ ,则可通过互相关求 $\tau$ .由 ...
- SpringMVC @RequestBody @RequestParam @PathVariable 等参数绑定注解详解
request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: http://blog.csdn.net/walkerjong/article/details/794 ...
- CC攻击原理及防范方法
一. CC攻击的原理: CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃.CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数 ...
- 【leetcode】437. Path Sum III
problem 437. Path Sum III 参考 1. Leetcode_437. Path Sum III; 完
- Python全栈之路----函数----局部变量
全局变量是定义在函数外部以及代码的变量,全局能用. 局部变量就是定义在函数里的变量,只能在局部生效. 在函数内部,可以引用全局变量. 如果全局和局部都有一个名字相同的变量,在函数内会优先调用函数内的局 ...
- day03字符串
字符串 1.方法详细内容 方法 强制转换 ##### 1.大小写转换 Value.upper() / value.lower() new_value=value.upper() print(new_v ...