使用 redis-cli 查找大 key
更新时间:2024-03-07 19:06:53
PDF
本文主要介绍如何使用 redis-cli 的 “--bigkeys” 选项查找大 Key。
背景信息
Redis 提供了 List、Hash、Zset 等复杂类型的数据结构,在使用 Redis 时可能由于 Key 设计不合理导致某个 Key 过大,致使读取、删除这些数据的操作花费过多的时间,从而对业务产生一定影响。另外,在集群模式下大 Key 的产生容易导致某个子节点的内存溢出。故我们需要找出大 Key,并对内存结构进行优化。
前提条件
-
已有与 Redis Cluster 实例可以互通的云服务器。
-
云服务器中已安装 Redis 客户端。安装步骤可参见 redis-cli 连接中的步骤1。
说明 Redis 客户端自带 redis-cli 工具。
操作步骤
-
登录已安装 redis-cli 的云服务器。
-
执行如下命令查找大 key。
redis-cli -h <redis_instance_address> -a <password> -p <port> --bigkeys
-
<redis_instance_address>
:表示 Redis Cluster 实例的 IP 地址,请根据实际地址替换。 -
<port>
:表示 Redis Cluster 实例的端口号,默认为 6379。 -
<password>
:表示 Redis Cluster 实例的认证密码。 -
--bigkeys
:表示查找大 key。执行成功后,系统显示类似如下信息。
$ redis-cli -h 192.168.*.* -a ****** -p 6379 --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 'key-419' with 3 bytes [05.14%] Biggest list found so far 'mylist' with 100004 items [35.77%] Biggest string found so far 'counter:__rand_int__' with 6 bytes [73.91%] Biggest hash found so far 'myobject' with 3 fields -------- summary ------- Sampled 506 keys in the keyspace! Total key length in bytes is 3452 (avg len 6.82) Biggest string found 'counter:__rand_int__' has 6 bytes Biggest list found 'mylist' has 100004 items Biggest hash found 'myobject' has 3 fields 504 strings with 1403 bytes (99.60% of keys, avg size 2.78) 1 lists with 100004 items (00.20% of keys, avg size 100004.00) 0 sets with 0 members (00.00% of keys, avg size 0.00) 1 hashs with 3 fields (00.20% of keys, avg size 3.00) 0 zsets with 0 members (00.00% of keys, avg size 0.00)
-