公司里最近redis服务器压力越来越大,其大概情况,只能从操作系统层面看,并不详尽,故同事在网上找了一个叫做 redis-live的开源项目,我配合部署了一下,还真有点意思,并解决了其中部分小debug,
原文来之这里 目前来说,越来越多的使用多了NOSQL的业务,但是这方面的监控缺不多。今天给大家介绍几个专业监控redis服务的工具,便于大家进行redis性能分析。 下面开始介绍安装redis-live:
因为redis-live是基于python开发的,所以首先要部署所需要的python环境 1.wget http://dl.fedoraproject.org/pub/epel/6/x86_64/python-pip-0.8-1.el6.noarch.rpm
2.rpm -ivh python-pip-0.8-1.el6.noarch.rpm
3.pip-python install tornado
4.pip-python install redis
5.pip-python install python-dateutil
6.pip-python install argparse
环境部署完了之后,就需要开始安装软件了。 git clone https://github.com/kumarnitin/RedisLive.git
Initialized empty Git repository in /root/RedisLive/.git/
remote: Counting objects: 715, done.
remote: Compressing objects: 100% (377/377), done.
remote: Total 715 (delta 338), reused 699 (delta 323)
Receiving objects: 100% (715/715), 2.59 MiB | 353 KiB/s, done.
Resolving deltas: 100% (338/338), done.
因为没有打包的安装包,所以只能下载安装git的源码。
安装好之后就可以配置了: cd RedisLive/src
vi redis-live.conf
{
"RedisServers":
[
{
"server" : "127.0.0.1",
"port" : 6379
}
], "DataStoreType" : "sqlite", "RedisStatsServer":
{
"server" : "127.0.0.1",
"port" : 6381
}
}
RedisServers这个是redis服务器的配置。
RedisStatsServer是redis服务器的监控信息可以存放在其他的redis服务器中.也就是RedisStatsServe.
一般的是把”DataStoreType”改成sqlite类型的,下面的RedisStatsServer就不用配置了. 注:因为有些redis服务器是需要密码进行访问的,所以如果有密码的话,需要在RedisServers里面写上密码:如下: "RedisServers":
[
{
"server" : "127.0.0.1",
"port" : 6379,
"password":"xxxxxx"
}
],
配置好之后,就可以启动服务了。
./redis-monitor.py –duration 120 &
./redis-live.py &
注:启动服务之后,如果访问web页面的话,会在当前终端输出日志,如果不想在终端输出,可以查看redis-live.py的参数 [root@localhost src]# ./redis-live.py --help
Usage: ./redis-live.py [OPTIONS] Options: --help show this help information
--log_file_max_size max size of log files before rollover
(default 100000000)
--log_file_num_backups number of log files to keep (default 10)
--log_file_prefix=PATH Path prefix for log files. Note that if you
are running multiple tornado processes,
log_file_prefix must be different for each
of them (e.g. include the port number)
--log_to_stderr Send log output to stderr (colorized if
possible). By default use stderr if
--log_file_prefix is not set and no other
logging is configured.
--logging=debug|info|warning|error|none
Set the Python log level. If 'none', tornado
won't touch the logging configuration.
(default info)
可以看到有日志大小,路径,级别等等的选项。
最后来看下监控效果图:

部署过程中遇到一些问题,
1,首先api/util/setting.py文件要加载项目根目录下的redis-live.conf,作者的意思,可能是想通过json解析配置文件,并最终load为字典供其它函数调用,但是人为写的配置文件,各种换行,空格,着实解析起来,真有点麻烦.经过分析,反正setting.py文件里函数要调用字典,并访问key我就直接把redis-live.conf配置改为字典,直接供setting.py调用,
  切记: setting.py import redis_live.py时需要回载项目根目录,要不然找不到字典, import sys; sys.path.append("根目录") 即可. 2,api/controller/BaseController.py 也需要导入根目录下的,dataprovider,也是同样问题,找不到 dataprovider下面所有模块,用同样方法解决,

监控redis数据库应用状态:python,tornado实现的更多相关文章

  1. Python使用Redis数据库

    Redis 简介 Redis是开源的高性能Key-Value数据库,可以用于缓存等用途. Redis可以提供事务和持久化支持保证并发安全性,并提供TTL(time to life)服务. 使用Redi ...

  2. python面试题:redis数据库

    来源链接: https://www.cnblogs.com/jasontec/p/9699242.html https://www.cnblogs.com/Java3y/p/10266306.html ...

  3. Python之操作redis数据库

    使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...

  4. redis python 操作 Python操作Redis数据库

    原文章于此:https://www.cnblogs.com/cnkai/p/7642787.html 有个人修改与改正 Python操作Redis数据库   连接数据库 StrictRedisfrom ...

  5. Prometheus+Grafana监控MySQL、Redis数据库

    俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼.本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL.Redis). 1.  安装G ...

  6. python爬取大众点评并写入mongodb数据库和redis数据库

    抓取大众点评首页左侧信息,如图: 我们要实现把中文名字都存到mongodb,而每个链接存入redis数据库. 因为将数据存到mongodb时每一个信息都会有一个对应的id,那样就方便我们存入redis ...

  7. Python全栈开发之---redis数据库

    1.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  8. Celery配置Redis数据库保存Return结果状态

    使用windows版本 1.于GitHUB下载https://github.com/ServiceStack/redis-windows Window版本,到路径: 2. 运行路径下:D:\redis ...

  9. python学习笔记(十六)python操作redis数据库

    Redis是一个key-value存储系统,它支持丰富的数据类型,如:string.list.set.zset(sorted set).hash. Redis特点 Redis以内存作为数据存储介质,所 ...

随机推荐

  1. Gradle入门(2):构建简介

    基本概念 在Gradle中,有两个基本概念:项目和任务.请看以下详解: 项目是指我们的构建产物(比如Jar包)或实施产物(将应用程序部署到生产环境).一个项目包含一个或多个任务. 任务是指不可分的最小 ...

  2. Enterprise Library 6.0 参考源码索引

    http://www.projky.com/entlib/6.0/Diagnostics/Tracing/DiaLib.cs.htmlhttp://www.projky.com/entlib/6.0/ ...

  3. 软工网络15团队作业8——Beta阶段项目总结

    1.新成员 姓名 风格 擅长 角色 宣言 李家俊 乱写 都有所涉猎 测试 混就完事了 丁树乐 潇洒 与人沟通 测试 与其临渊羡鱼,不如退而结网 2.是否需要更换团队的PM 不需要 3.下一阶段需要改进 ...

  4. 通过ctrl+r快速启动程序

    步骤1:在[我的电脑]右键-[系统属性]-[环境变量]中增加如图1设置并保存 步骤2:在图2中添加步骤1中增加的变量名并保存 步骤3:在ctrl+r的运行窗口中输入步骤1中的变量名即可快速启动程序   ...

  5. scrapy-yield scrapy.Request()不执行、失效、Filtered offsite request to错误 [转]

    scrapy错误:yield scrapy.Request()不执行.失效.Filtered offsite request to错误.首先我们在Request()方法里面添加这么一个东东: yiel ...

  6. Node初识笔记 1第一周

    #下载安装好node > https://nodejs.org/en/ #  打开cmd  调整好执行路径 . 1.js是JS文件名,cd调招路径,‘node’+空格 +JS文件名(带上扩展名) ...

  7. HDU4722——Good Numbers——2013 ACM/ICPC Asia Regional Online —— Warmup2

    今天比赛做得一个数位dp. 首先声明这个题目在数位dp中间绝对是赤裸裸的水题.毫无技巧可言. 题目的意思是个你a和b,要求出在a和b中间有多少个数满足数位上各个数字的和为10的倍数. 显然定义一个二维 ...

  8. python自动化之时间

    cxz##############################现在时间######################### import time time.time() ############# ...

  9. TFS(Team Foundation Server) 权限设置记录

    环境: TFS2012 + win7 1.安装好TFS 2.创建系统用户组: TFSAdmins.TFSDevs.TFSUsers 分别为TFS管理人员组.TFS开发人员组.TFS普通用户组. 如下图 ...

  10. LOJ #143. 质数判定

    题目描述 判定输入的数是不是质数. 输入格式 若干行,一行一个数 x. 行数不超过 1.5×104​​. 输出格式 对于输入的每一行,如果 x 是质数输出一行 Y,否则输出一行 N. 样例 样例输入 ...