专栏首页DBA随笔Redis开发与运维学习笔记---(3)

Redis开发与运维学习笔记---(3)

Redis-cli详解

Redis提供了redis-cli、redis-server、redis-benchmart等shell工具,今天对这些工具做下介绍。

redis-cli是最常用的redis工具。该工具我们最常使用的参数是-p和-h参数,其中-p参数后面跟端口,-h参数后面跟主机名称。当然,这两个参数可以缺省,默认是6379和127.0.0.1,如下:

[root@VM_48_10_centos ~]# redis-cli
127.0.0.1:6379> exit
[root@VM_48_10_centos ~]# redis-cli -p 6379 -h 127.0.0.1
127.0.0.1:6379> exit

这里对其他的参数做一下说明:

-r

-r(repeat)选项代表将命令执行多次

[root@VM_48_10_centos ~]# redis-cli -r 3 ping
PONG
PONG
PONG

-i

-i(interval)选项代表每隔几秒执行一次命令,但是-i选项必须和-r选项一起使用,下面每隔1s执行一次ping命令:

[root@VM_48_10_centos ~]# redis-cli -r 3 -i 2 ping
PONG
PONG
PONG

其中,单位为秒s,不支持毫秒的单位,如果想用毫秒,则需要使用对应的小数表示。

-x

-x选项表示从标准输入读取数据作为redis-cli的最后一个参数,例如下面的操作会将字符串world作为set hello的值:

echo "world"|redis-cli -x set hello

-c

-c(cluster)选项是连接redis cluster节点时需要用的。该选项可以防止move和ask异常

-a

如果redis配置了密码,则可以使用-a选项

--slave

slave选项是把当前客户端模拟成当前redis的从节点,可以用来获取当前redis节点的更新操作,是复制相关的参数。这个特点是比较棒的,和MySQL不一样的是不需要搭建其他的服务器,直接用客户端就能模拟从节点,从而获取当前主节点上的操作,就像show processlist抓取的当前执行SQL一样。

--rdb

该选项会请求redis实例生成并发送rdb持久化文件,保存在本地,可以用它作为持久化文件的定期备份。

--pipe

--pipe选项用于将命令封装成Redis通信协议定义的数据格式,批量发送给redis执行。

--bigkeys

该选项使用scan命令对redis的键进行采样,从中找到内存占用比较大的键值,从而排除系统的可能瓶颈

--eval

该选项用于执行lua脚本。

--latency

该参数有3个选项,分别是--latency,--latency-history以及--latency-dist,其中:

--latency选项可以测试客户端到目标redis的网络延迟,但是只输出一条信息

--latency-history测试网络延迟,可以分段测试延迟,每15s输出一次

--latency-dist会使用统计表的形式从控制台输出延迟统计信息

--stat

该选项可以试试获取Redis的重要统计信息,虽然info命令中的统计信息更全,但是能够实时看到一些增量数据,对于redis的运维还是有一定帮助。

[root@VM_48_10_centos ~]# redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
4          826.52K  1       0       3150 (+0)           112         
4          826.52K  1       0       3151 (+1)           112         
4          826.52K  1       0       3152 (+1)           112         
4          826.52K  1       0       3153 (+1)           112         
4          826.52K  1       0       3154 (+1)           112

Redis-Server详解

redis-server是用来启动redis服务的,常用的启动方式有下面几种:

1、直接启动:redis-server即可

2、增加配置参数:

redis-server --configkey1 --configValue .......

例如:

redis-server --port 6380

3、配置文件启动

redis-server /dir/redis.conf

除了启动redis之外,还有一个选项--test-memory,该选项可以检测当前操作系统能否稳定分配执行容量的内存给redis,通过这种检测可以有效避免因为内存问题造成的redis崩溃,举例:

redis-server --test-memory 1024

检测是否可以分配1G内存给redis

整个内存检测时间比较长,当输入passed this test时说明检测完毕。

PipeLine概念

上一节中,我们知道redis执行一条命令分为4个步骤:

发送命令、命令排队、执行命令、返回结果。

我们把发送命令+返回结果的时间成为往返时间RTT,redis中部分数据结构提供了mget,mset等批量执行的命令,有效节约了时间,但是大部分命令是不支持批量操作的,这样势必会增加耗时。而PipeLine机制能够改善这类问题。

Pipeline将一组Redis命令进行组装,通过一次RTT传给Redis,再将这组命令的执行结果按照顺序返回给客户端,有效的节约了时间。

redis-cli的--pipe参数实际上就是使用了Pipeline的机制。

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447),作者:AsiaYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis开发与运维学习笔记---(5)

    redis中的事务和MySQL中的事务类似,也是为了保证多条命令组合的原子性,为此,redis提供了简单的事务功能以及集成Lua来解决这个问题。下面我们来...

    AsiaYe
  • Redis开发与运维学习笔记---(1)

    redis中的数据是通过key-value的方法存储的,类似C++中的map,我们通过key就可以获取value的值。redis提供了几个面向redis数...

    AsiaYe
  • 并发replace操作导致的死锁问题

    今天上班的时候,遇到了一个问题,有业务同学反应使用并发replace操作的时候,遇到了死锁的问题。针对这个问题,我看了看表的结构,发现表中有一个主键,一...

    AsiaYe
  • Windows下安装并设置Redis

    Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。详情请参考: http://redis.io/down...

    庞小明
  • php使用redis的几种常见操作方式和用法示例

    本文实例讲述了php使用redis的几种常见操作方式和用法。分享给大家供大家参考,具体如下:

    砸漏
  • 关于redis内存分析,内存优化

    大量TimeoutException,说明当前redis服务节点上已经堆积了大量的连接查询,超出redis服务能力,再次尝试连接的客户端,redis 服务节点直...

    不会飞的小鸟
  • 搭建redis集群

    redis的安装此篇不做说明,可以参考:https://www.cnblogs.com/lm970585581/p/9909957.html

    HUC思梦
  • Python操作redis

      http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit=search

    py3study
  • 记一次redis cpu 100%的紧急bug

    前段时间遇到一个棘手问题,mq消费速度突然从30/s变成1/s,而且还持续了很长的一段时间,吓得我赶紧动手排查问题。但是mq消费速度慢的原因,可能有很多种(例如...

    林老师带你学编程
  • 5分钟带你入门Redis

    1.redis概述 redis是一个开源的,先进的 key-value 存储可用于构建高性能的存储解决方案。它支持数据结构有字符串,哈希,列表,集合,带有范围查...

    方志朋

扫码关注云+社区

领取腾讯云代金券