[转帖]详解redis-cli 命令

详解,redis,cli,命令 · 浏览次数 : 0

小编点评

**命令解析:** ``` # 遍历所有键值对 scan # 获取每个键值对的信息 object freq # 打印键值对的信息 print ``` **命令功能:** 1. 使用 `scan` 命令遍历所有键值对。 2. 对于每个键值对,使用 `object freq` 命令获取该键值对的信息,包括键名、数据类型、大小等。 3. 打印每个键值对的信息。 **命令用法:** ``` redis-cli --rdb rdb.log123root@hylaz:~# ``` 其中: * `rdb.log123root@hylaz` 是一个文件名。 * `--rdb` 表示使用 Redis 存储器。 **结果:** 该命令将返回一个 JSON 字符串,其中包含所有键值对的信息。例如: ```json { "key": "name1", "type": "string", "size": 5 }, { "key": "myset", "type": "set", "size": 1 }, ... ``` **用途:** 该命令可以用于以下目的: * 查看 Redis 中的所有键值对。 * 获取键值对的信息,包括键名、数据类型、大小等。 * 找出服务器中热点键。

正文

https://www.jb51.net/article/265208.htm
这篇文章主要介绍了redis-cli 命令详解,主要包括命令使用及使用info命令获取服务器的信息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
 

命令使用:

1
redis-cli [OPTIONS] [cmd [arg [arg ...]]]

选项说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-h <hostname>      Server hostname (default: 127.0.0.1). ip地址
-p <port>          Server port (default: 6379). 服务器端口号
-s <socket>        Server socket (overrides hostname and port).
-a <password>      Password to use when connecting to the server. 密码
-u <uri>           Server URI. url格式的地址
-r <repeat>        Execute specified command N times.
-i <interval>      When -r is used, waits <interval> seconds per command.
                   It is possible to specify sub-second times like -i 0.1.
-n <db>            Database number. 指定数据库
-x                 Read last argument from STDIN.
-d <delimiter>     Multi-bulk delimiter in for raw formatting (default: \n).
-c                 Enable cluster mode (follow -ASK and -MOVED redirections).
--raw              Use raw formatting for replies (default when STDOUT is
                   not a tty).
--no-raw           Force formatted output even when STDOUT is not a tty.
--csv              Output in CSV format.
--stat             Print rolling stats about server: mem, clients, ... 统计数据 连续输出
--latency          Enter a special mode continuously sampling latency.
                   If you use this mode in an interactive session it runs
                   forever displaying real-time stats. Otherwise if --raw or
                   --csv is specified, or if you redirect the output to a non
                   TTY, it samples the latency for 1 second (you can use
                   -i to change the interval), then produces a single output
                   and exits. 延时统计
--latency-history  Like --latency but tracking latency changes over time.
                   Default time interval is 15 sec. Change it using -i.
--latency-dist     Shows latency as a spectrum, requires xterm 256 colors.
                   Default time interval is 1 sec. Change it using -i.
--lru-test <keys>  Simulate a cache workload with an 80-20 distribution.
--replica          Simulate a replica showing commands received from the master.
--rdb <filename>   Transfer an RDB dump from remote server to local file. 导出rdb文件
--pipe             Transfer raw Redis protocol from stdin to server.
管道模式
--pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
                   no reply is received within <n> seconds.
                   Default timeout: 30. Use 0 to wait forever.
                   管道超时
--bigkeys          Sample Redis keys looking for big keys.
--hotkeys          Sample Redis keys looking for hot keys.
                   only works when maxmemory-policy is *lfu.
--scan             List all keys using the SCAN command.获取服务器所有的键
--pattern <pat>    Useful with --scan to specify a SCAN pattern.
正则表达式 用于scan命令中
--intrinsic-latency <sec> Run a test to measure intrinsic system latency.
                   The test will run for the specified amount of seconds.
--eval <file>      Send an EVAL command using the Lua script at <file>.
--ldb              Used with --eval enable the Redis Lua debugger.
--ldb-sync-mode    Like --ldb but uses the synchronous Lua debugger, in
                   this mode the server is blocked and script changes are
                   not rolled back from the server memory.
--cluster <command> [args...] [opts...]
                   Cluster Manager command and arguments (see below).
--verbose          Verbose mode.
--no-auth-warning  Don't show warning message when using password on command
                   line interface.

注意:

-u  选项中url格式参考文档https://www.iana.org/assignments/uri-schemes/prov/redis 

格式为:redis://user:secret@localhost:6379/0?foo=bar&qux=baz

举例:

1
2
3
4
5
6
7
8
9
10
11
12
root@hylaz:~# redis-cli
127.0.0.1:6379> set name hylaz
OK
127.0.0.1:6379> quit
root@hylaz:~# redis-cli -h 127.0.0.1
127.0.0.1:6379> get name
"hylaz"
127.0.0.1:6379> select 6
127.0.0.1:6379[6]>
  
root@hylaz:~# redis-cli -h 127.0.0.1 -p 6379 -n 2
127.0.0.1:6379[2]> get age

server中统计选项

1
2
3
4
5
6
7
root@hylaz:~# redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections         
11         835.52K  1       0       12 (+0)             5          
11         835.52K  1       0       13 (+1)             5        
11         835.52K  1       0       14 (+1)             5          
11         835.52K  1       0       15 (+1)             5

列表中选项说明:

选项含义
keys server中key的数量
mem 键值对的总内存量
clients 当前连接的总clients数量
blocked 当前阻塞的客户端数量
requests 服务器请求总次数 (+1) 截止上次请求增加次数
connections 服务器连接次数

使用info命令获取服务器的信息

导入rdb文件 命令:redis-cli --rdb rdb.log

1
2
3
root@hylaz:~# redis-cli --rdb rdb.log
SYNC sent to master, writing 344 bytes to 'rdb.log'
Transfer finished with success.

该命令选项实现:

  • 向server发送SYNC命令,返回需要写的总字节数
  • 从server读取总字节数据写到指定文件中

找出各种数据类型的最大键值对 

命令:redis-cli --bigkeys

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@hylaz:~# redis-cli --bigkeys
  
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
  
[00.00%] Biggest string found so far 'name1' with 5 bytes
[00.00%] Biggest set    found so far 'myset' with 1 members
[00.00%] Biggest string found so far 'key' with 6 bytes
  
-------- summary -------
  
Sampled 13 keys in the keyspace!
Total key length in bytes is 52 (avg len 4.00)
  
Biggest string found 'key' has 6 bytes
Biggest    set found 'myset' has 1 members
  
12 strings with 33 bytes (92.31% of keys, avg size 2.75)
0 lists with 0 items (00.00% of keys, avg size 0.00)
1 sets with 1 members (07.69% of keys, avg size 1.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)

该选项实现:通过使用scan命令遍历server中的键值对,针对不同数据类型进行统计,

找出server中热点key 命令:redis-cli --hotkeys

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Scanning the entire keyspace to find hot keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
  
[00.00%] Hot key 'dd' found so far with counter 4
[00.00%] Hot key 'myset' found so far with counter 5
[00.00%] Hot key 'a' found so far with counter 5
[00.00%] Hot key 'dds' found so far with counter 4
[71.43%] Hot key 'aa' found so far with counter 4
[71.43%] Hot key 'key' found so far with counter 4
  
-------- summary -------
  
Sampled 14 keys in the keyspace!
hot key found with counter: 5   keyname: myset
hot key found with counter: 5   keyname: a
hot key found with counter: 4   keyname: dd
hot key found with counter: 4   keyname: dds
hot key found with counter: 4   keyname: aa
hot key found with counter: 4   keyname: key

选项实现:

1. redis实现8种缓存淘汰策略:

voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰

volatile-lfu: 从已设置过期时间的数据集驱逐使用频率最少的键

allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

allkeys-lfu: 从所有键中驱逐使用频率最少的键

allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰

no-enviction(驱逐):禁止驱逐数据 当内存不足以容纳新写入数据时,新写入操作会报错

需要设置淘汰策略为lru或者lfu

2. 命令实现使用scan命令遍历所有的键值对,针对每个键值对使用OBJECT freq 获取该键值对的信息

到此这篇关于redis-cli 命令详解的文章就介绍到这了,更多相关redis-cli 命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

与[转帖]详解redis-cli 命令相似的内容:

[转帖]详解redis-cli 命令

https://www.jb51.net/article/265208.htm 这篇文章主要介绍了redis-cli 命令详解,主要包括命令使用及使用info命令获取服务器的信息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 命令使用: 1 redis-c

[转帖]详解redis-cli 命令

https://www.jb51.net/article/265208.htm 这篇文章主要介绍了redis-cli 命令详解,主要包括命令使用及使用info命令获取服务器的信息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 命令使用: 1 redis-c

[转帖]Redis进阶实践之十四 Redis-cli命令行工具使用详解第一部分

https://www.cnblogs.com/PatrickLiu/p/8508975.html 一、介绍 redis学了有一段时间了,以前都是看视频,看教程,很少看官方的东西。现在redis的东西要看的都差不多看完了。网上的东西也不多了。剩下来就看看官网的东西吧,一遍翻译,一遍测试。不错的使用体

[转帖]Redis进阶实践之十五 Redis-cli命令行工具使用详解第二部分(结束)

https://www.cnblogs.com/PatrickLiu/p/8527770.html 一、介绍 今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分。话不多说,开始我们今天的讲解。如果要想看第一篇文章,地址如下:http://www.cnbl

[转帖]详解redis集群的三种方式

https://www.jb51.net/article/256647.htm Redis三种集群方式分别是主从复制,哨兵模式,Cluster集群,这篇文章主要介绍了redis集群的三种方式,本文给大家介绍的非常详细,需要的朋友可以参考下 目录 Redis三种集群方式:主从复制,哨兵模式,Clust

[转帖]一文详解 Redis 中 BigKey、HotKey 的发现与处理

https://baijiahao.baidu.com/s?id=1709288518127882966&wfr=spider&for=pc 一 前言 在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为“大key”)及HotKey(下文将其称为“热key”)。大Key与热Key如果未

[转帖]redis数据结构详解之Hash(四)

https://www.cnblogs.com/Alex80/p/5320091.html 序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引却没有实

[转帖]Redis命令详解:Keys

https://jackeyzhe.github.io/2018/09/22/Redis%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3%EF%BC%9AKeys/ 介绍完Redis连接相关命令后,再来介绍一下与Key相关的命令,Redis作为一个key-value数据库,对

[转帖]Redis SCAN命令详解

https://www.jb51.net/article/257083.htm 处理一下.. SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程,这篇文章给大家介绍了Red

[转帖]Redis学习笔记--Redis数据过期策略详解

本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了 Redis会自己回收清理不用的数据吗?