在Redis中有办法打印键的数量吗?
我知道
keys *
但这似乎有点沉重。考虑到Redis是一个键值存储,也许这是唯一的方法。但我还是希望看到一些类似于
count keys *
在Redis中有办法打印键的数量吗?
我知道
keys *
但这似乎有点沉重。考虑到Redis是一个键值存储,也许这是唯一的方法。但我还是希望看到一些类似于
count keys *
当前回答
DBSIZE命令返回键的数量
> DBSIZE
其他回答
警告:不要在生产机器上运行此程序。
Linux系统:
redis-cli KEYS "*" | wc -l
注意:正如下面的评论中提到的,这是一个O(N)操作,所以在一个有很多键的大数据库上,你不应该使用它。对于较小的部署,应该没问题。
DBSIZE返回键的数量,更容易解析。
缺点:如果一个密钥已经过期,它可能仍然有效。
http://redis.io/commands/dbsize
进入redis-cli,使用以下命令
info keyspace
它可能会帮助到某人
因为Redis 2.6,支持lua,你可以得到这样的通配符键
eval "return #redis.call('keys', 'prefix-*')" 0
参见eval command
您可以发出INFO命令,该命令返回关于服务器的信息和统计信息。请看这里的示例输出。
正如mVChr在评论中提到的,你可以直接在redis-cli中使用info keyspace。
redis> INFO
# Server
redis_version:6.0.6
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:b63575307aaffe0a
redis_mode:standalone
os:Linux 5.4.0-1017-aws x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:9.3.0
process_id:2854672
run_id:90a5246f10e0aeb6b02cc2765b485d841ffc924e
tcp_port:6379
uptime_in_seconds:2593097
uptime_in_days:30
hz:10
configured_hz:10
lru_clock:4030200
executable:/usr/local/bin/redis-server