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 ...
随机推荐
- .net core WebApi Mutex实现并发同步
Mutex,中文译为互斥体,在.net中也是作为一种线程或进程之间的互斥体存在.即在同一时刻,一个共享资源只允许被某一个线程或进程访问,其他线程或进程需要等待(直至获取互斥锁为止). Mutex的使用 ...
- elasticsearch 使用快照进行备份
Elasticsearch也提供了备份集群中索引数据的策略——snapshot API.它会备份整个集群的当前状态和数据,并保存到集群中各个节点共享的仓库中.这个备份的进程是增量备份的,在第一次备份的 ...
- Mondrian辅助组件----Schema WorkBench(架构平台简介)
Schema WorkBech 是Pentaho套件的另一个组件,是mondrian中schema文件生成工具.通过Schema WorkBench我们可以快速生成一个schema文件,不再需要手写. ...
- 关于attibutedText输出中文字符后的英文和数字进行分开解析的问题
上面的图应该很清楚 具体这个attibutedText 是做什么的就不说了 ,最初我查了资料发现有人和我一样的输出,把一个字符串的中英文分开打印出来是iOS关于UItextVIew和UIlabel的差 ...
- [LeetCode&Python] Problem 925. Long Pressed Name
Your friend is typing his name into a keyboard. Sometimes, when typing a character c, the key might ...
- UVa699
这个建树的根选的很有意思,在中间作为树的根.所以二叉树建树的方法虽然一般是有两种数组的方法,一个是如果深度不太大的话,可以之间用2*k+1,2*k建树,如果很大的话,就挨着建树,弄一个结构体,有左右子 ...
- ccf-棋局评估-20190304
三更: 更短的代码,更短的时间,加油! 也祝你好运哦!!!! 核心: dfs(player) player下完之后最大得分 优点: 我位运算掌握的还不错嘛 2和1如何转换 2^3=1; 1^3= ...
- PTA——黑洞数
PTA 7-44 黑洞数 我的程序,一个用例通不过 #include<stdio.h> void sort(int *a,int n); int main() { ; scanf(&quo ...
- cstdlib和stdlib.h区别
一.区别 #include<stdlib.h> :.h是C的习惯 #include<cstdlib> : c开头是C++的习惯 二.stdlib.h是C语言库头文件之一,包含了 ...
- hdu5000 Clone dp+大数
After eating food from Chernobyl, DRD got a super power: he could clone himself right now! He used t ...