Redis运维常用命令

1. 在使用 redis-cli 命令连接 Redis 服务器时

// 无密码
redis-cli
// 有密码
redis-cli -h <host> -p <port> -a <password>
// host和port默认
redis-cli -a <password>

2. redis内存使用情况查看

第一种方式:

//连接到Redis实例
redis-cli
//执行info命令
info memory

返回结果

- used_memory:Redis已经使用的内存总量,单位为字节。
- used_memory_human:Redis已经使用的内存总量,以人类可读的格式显示(M表示兆字节)。
- used_memory_rss:Redis在物理内存中占用的内存总量,单位为字节。
- used_memory_rss_human:Redis在物理内存中占用的内存总量,以人类可读的格式显示(M表示兆字节)。
- used_memory_peak:Redis历史上使用的最大内存总量,单位为字节。
- used_memory_peak_human:Redis历史上使用的最大内存总量,以人类可读的格式显示(M表示兆字节)。
- total_system_memory:Redis运行所在服务器的总内存,单位为字节。
- total_system_memory_human:Redis运行所在服务器的总内存,以人类可读的格式显示(G表示吉字节)。
- used_memory_lua:Redis为Lua引擎分配的内存总量,单位为字节。
- used_memory_lua_human:Redis为Lua引擎分配的内存总量,以人类可读的格式显示(K表示千字节)。
- maxmemory:Redis配置文件中指定的最大内存使用量,单位为字节。如果该值为0,则表示没有限制。
- maxmemory_human:Redis配置文件中指定的最大内存使用量,以人类可读的格式显示(B表示字节)。
- maxmemory_policy:Redis在达到最大内存使用量后所采取的策略,noeviction表示不删除任何数据。
- mem_fragmentation_ratio:Redis内存碎片率。该值越接近1,说明内存使用效率越高;该值越大,说明内存碎片越严重。
- mem_allocator:Redis所使用的内存分配器名称和版本号。本例中使用jemalloc-4.0.3。

第二种方式:

//这样就可以每隔一秒钟输出Redis实例的内存使用情况了。
redis-cli --stat
// 有密码
redis-cli --stat -a <password>

返回结果解析

非常抱歉,之前的回答中我理解有误。这个命令的确不是redis-cli --stat命令的返回结果。下面给出一个猜测:

- keys:Redis当前存储的key的数量。
- mem:Redis当前已使用的内存总量(以字节为单位)。
- clients:当前连接到Redis服务器的客户端数量。
- blocked:正在等待阻塞命令(如BLPOP)执行的客户端数量。
- requests:自 Redis 服务器启动以来,处理的命令总数量。
- connections:自Redis服务器启动以来,接受的连接请求数量。

需要注意的是,以上这些指标都是Redis服务器的运行状态指标,可以通过监控这些指标了解Redis服务器当前的状态,以便进行调整和优化。但是,建议您在确认该命令的来源和用途之后再进行使用。

3. redis连接数查看

// 连接数查看(或者采用 redis-cli --stat命令)
info clients

// 返回结果
# Clients
connected_clients:122
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

这是通过执行 Redis 的 info clients 命令所返回的一些客户端相关的信息:

  • connected_clients:122 表示当前连接到 Redis 服务器的客户端数量为 122。(也就是常说的连接数)
  • client_longest_output_list:0 表示当前连接到 Redis 服务器的所有客户端中,输出缓冲区中最多的数据包个数为 0。
  • client_biggest_input_buf:0 表示当前连接到 Redis 服务器的所有客户端中,输入缓冲区中最大的数据包大小为 0。
  • blocked_clients:0 表示当前正在被阻塞的客户端数量为 0。

需要注意的是,以上信息只反映了当前时刻的客户端连接情况和状态,不能代表历史连接数或者连接频率等更加详细的信息。因此,在实际应用中,需要根据具体需求和系统资源情况来进行适当的监控和调整,以保证 Redis 服务的安全和稳定运行。

4. config命令

CONFIG命令是Redis提供的一个用于查询和修改Redis服务器配置参数的命令。下面是一些常见的CONFIG命令使用场景:

1. 获取指定配置项的值:CONFIG GET CONFIG_ITEM_NAME(例如,CONFIG GET maxmemory)

2. 修改指定配置项的值:CONFIG SET CONFIG_ITEM_NAME NEW_VALUE(例如,CONFIG SET maxmemory 100000000)

3. 获取所有配置项及其值:CONFIG GET *

4. 将当前配置保存到配置文件中:CONFIG REWRITE

5. 以文本格式获取服务器的各种信息,包括版本号、运行模式、内存使用情况等:CONFIG GET CONFIGURATION

6. 以“key=value”形式设置一组配置项:CONFIG SET CONFIG_ITEM_NAME VALUE [CONFIG_ITEM_NAME VALUE …](例如,CONFIG SET maxmemory 100000000 notify-keyspace-events KEA)。

注意:使用CONFIG命令时,需要小心谨慎,避免误操作导致系统崩溃或数据丢失。建议在修改配置项之前先备份配置文件,并在测试环境中进行验证。

5. 获取Redis服务器的慢日志

Redis的SLOWLOG GET命令用于获取Redis服务器中最近执行时间超过指定阈值的命令详情,例如,
这个命令将返回Redis服务器中最新的5条执行时间超过慢查询日志记录阈值(默认为10000微秒)的慢查询记录

slowlog get 5

SLOWLOG GET命令返回一个列表,包含多个字典(dict)对象,每个字典对象表示一条慢日志记录。每个字典对象包括以下字段:

  • id:慢日志记录的唯一标识符。
  • timestamp:慢日志记录的时间戳(以秒为单位)。
  • duration:慢日志记录的执行时间(以微秒为单位)。
  • command:慢日志记录对应的Redis命令及参数。

例如,下面是执行SLOWLOG GET 5命令后返回的一个慢日志记录示例:

1) 1) (integer) 2
   2) (integer) 1630885015
   3) (integer) 1128
   4) 1) "SET"
      2) "foo"
      3) "bar"

这个字典对象表示一条慢日志记录,其ID为2,时间戳为1630885015,执行时间为1128微秒,对应的Redis命令是SET,参数是foo和bar。

通过分析慢日志记录,可以找出执行时间较长的命令,并进行优化。通常需要注意的是,慢日志记录的数量可能会很大,在操作之前需要考虑到服务器的性能开销。同时,慢日志记录只会在Redis服务器中开启慢查询日志时才会记录,因此需要注意在生产环境中开启慢查询日志所带来的性能开销和安全风险。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值