Redis 相关功能和实用命令(五)

慢查询原因分析

由于 Redis 是单线程的,它内部维护了一个命令队列,所以当有耗时的命令出现时,比如 keys *,后面的命令会被阻塞,通查查出慢查询可以对服务进一步优化。

  1. 设置慢查询阀值:默认10 毫秒,以微秒为单位

    6379>config set slowlog-log-slower-than 10000

    可直接修改 redis.conf 加上 slowlog-log-slower-than 10000

    slow-max-len 用来设置慢查询条数

  2. 执行 slowlog get 获取慢查询,格式如下

一般会定期将慢查询进行导出到 mysql 或其它存储,用于业务人员查看哪里出现了慢查询

管道 pipeline

上篇文章展示了在控制台中如何使用管道来导入 mysql 数据 ,但管道一般在应用程序中使用

 Object execute = redisTemplate.execute(new RedisCallback<Object>() {
     @Override
     public Object doInRedis(RedisConnection connection) throws DataAccessException {
         connection.openPipeline();
         for (int i = 0; i < 1000000; i++) {
             String key = "123" + i;
             connection.set(key.getBytes(), key.getBytes());
         }
         List<Object> result = connection.closePipeline();
         return result;
     }
 });

发布订阅 (publish/subscribe)

Redis 的发布订阅比较简单,不适合于专业的场景,会有消息丢失,无法回溯等问题,这个发布订阅一般是用在 Redis 内部使用,比如哨兵的监控

专业的发布订阅建议还是使用 kafka 或者 rabbitmq

rabbitmq 可参考我的另一篇文章 Rabbitmq

一些实用命令

  • 查询连接的占用情况,哪台主机占用多少连接,用于排查连接耗光问题

    redis-cli -a <密码> client list  | awk '{print $1}' | cut -d "=" -f2 | cut -d: -f 1 | sort  -n | uniq -c 
  • 查询当前内存使用情况

    6379> info Memory

  • 在所有 key 里面返回随机一个 key ,可以用于抽奖
    randomkey

    一点小推广

    创作不易,希望可以支持下我的开源软件,及我的小工具,欢迎来 gitee 点星,fork ,提 bug 。

Excel 通用导入导出,支持 Excel 公式
博客地址:https://blog.csdn.net/sanri1993/article/details/100601578
gitee:https://gitee.com/sanri/sanri-excel-poi

使用模板代码 ,从数据库生成代码 ,及一些项目中经常可以用到的小工具
博客地址:https://blog.csdn.net/sanri1993/article/details/98664034
gitee:https://gitee.com/sanri/sanri-tools-maven

原文地址:https://www.cnblogs.com/sanri1993/p/11610426.html

时间: 2024-12-14 21:41:30

Redis 相关功能和实用命令(五)的相关文章

Redis系列六:redis相关功能

一. 慢查询原因分析 与mysql一样:当执行时间超过阀值,会将发生时间耗时的命令记录 redis命令生命周期:发送 排队 执行 返回慢查询只统计第3个执行步骤的时间 预设阀值:两种方式,默认为10毫秒1,动态设置6379:> config set slowlog-log-slower-than 10000 //10毫秒10000微秒使用config set完后,若想将配置持久化保存到redis.conf,要执行config rewrite 2,redis.conf修改:找到slowlog-lo

NoSQL之Redis高级实用命令详解--安全和主从复制

Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  数据库相关  >  NoSQL数据库 NoSQL之Redis高级实用命令详解--安全和主从复制 NoSQL Redis   2014-01-09 22:52:47 发布 您的评价:       0.0   收

Redis设计与实现(一~五整合版)【搬运】

Redis设计与实现(一~五整合版) by @飘过的小牛 一 前言 项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串.但是一直听说redis是一个很牛的开源项目,很多公司都在用.于是我就比较奇怪,这玩意不就和 memcache 差不多吗?仅仅是因为memcache是内存级别的,没有持久化功能.而redis支持持久化?难道这就是它的必杀技? 带着这个疑问,我在网上搜了一圈.发现有个叫做huangz的程序员针对redis写了一本书叫做<redis设

Redis附加功能之键过期功能

一.键过期功能的相关命令 二.设置生存时间 Redis 提供了两个命令来设置键的生存时间(TTL,time to live),它们分别是: 如果给定的键不存在,那么 EXPIRE 和 PEXPIRE 将返回 0 ,表示设置失败:如果命令返回 1 ,那么表示设置成功.当一个键被设置了生存时间之后,它的生存时间将会随着时间的流逝而减少:时间过去一毫秒,键的生存时间就减少一毫秒:时间过去一秒钟,键的生存时间就减少一秒钟:以此类推.当一个键的生存时间被减少至低于 0 时,Redis 就会自动将这个键删除

推荐给开发人员的6个实用命令行工具

推荐给开发人员的6个实用命令行工具 作为一名Web开发者,当程序出现问题时日子总不是那么好过.问题可能无处不在,可能是你发送的请求出了错,可能是回复出了错,可能是你使用的某个第三方库出了问题,又或者是一个外部API调用失败了.优秀的工具对于定位问题出在何处有着无可估量的价值,而且能在一开始就帮助我们阻止问题的出现,总的来说能使我们的工作更有效率.命令行工具尤其有用,因为它们非常易于做自动化和脚本处理,能够以各种不同的方式进行组合和重用.本文介绍了6个非常强大且灵活的工具,熟练使用这些工具能使你的

CentOS系统文件和目录管理相关的一些重要命令

我们都知道,在Linux系统中,基本上任何我们需要做的事都可以通过输入命令来完成,所以在Linux系统中命令非常的多,我们不可能也没必要记住所有的这些命令,但是对于一些常用的命令我们还是必须要对其了如指掌的. 当然,即使这样,我们需要掌握的常用的命令也有百余条之多,我们难道就专门针对这百余条常用的命令来对其进行死记硬背吗?就像在学java时,我们学习其23种设计模式一样,我们不能单纯为了只是为了学习那23种设计模式而去学习,我们更重要的是学习这些模式,然后在实际项目中多去用它.在学习23种设计模

CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Linux文件和目录管理相关的一些重要命令,包括 目录与路径相关的命令(cd.pwd.mkdir.rmdir等).管理文件与目录的命令(ls.cp.rm.mv等).查看文件内容命令(cat.more.less等),在这一篇随笔中,将继续详细记录与Linux文件和目录管理相关的其他一些重要命令. 一.修改文

【Vim】实用命令行

在vim中高亮关键字 syntax enable 可以高亮关键字:一般后面还要在跟一个syntax on打开语法高亮 syntax clear 清除关键字高亮 在secureCRT不是xterminal模式的时候,试了一下,没起作用啊,如果是xterminal模式的时候是会起作用的 在vim中查找 / 后面跟要查找的字符串:从当前光标位置向上搜索 ? 后面跟要查找的字符串:从当前光标位置向下搜索 n 找下一个 N 找上一个 清除并重画屏幕 [Ctrl+l]组合键 vim快捷键定制 对于键盘符号,

Linux 项目实用命令

总结一下Linux下常用的命令 nc nc命令,这是Linux一般都带有的,被誉为“瑞士军刀”.windows和Linux都有,可以下载安装对应的平台工具.使用UDP和TCP协议的网络连接去读写数据,是一个稳定的后门工具.同时它也是一个功能强大的网络调试和嗅探工具. 使用格式: nc [-options] hostname port[s] [ports] ... 连接到某个地方 nc -l -p port [options] [hostname] [port] 绑定端口等待连接 参数有下: -e