Answers:
您可以发出INFO命令,该命令返回有关服务器的信息和统计信息。请参阅此处的示例输出。
如mVChr的评论中所述,您可以info keyspace
直接在redis-cli上使用。
redis-cli INFO Keyspace | grep ^db
KEYS *
将过期的密钥逐出。同样,Redis 可能会主动退出某些过期的密钥,但不一定要全部撤消。
警告:请勿在生产机器上运行此程序。
在Linux机器上:
redis-cli KEYS "*" | wc -l
注意:如下面的注释中所述,这是一个O(N)操作,因此在具有许多键的大型DB上,您不应使用此操作。对于较小的部署,应该没问题。
要获取密钥总数,请使用以下命令:
127.0.0.1:6379> DBSIZE
dbsize()
返回键的总数。
您可以通过随机采样键,然后检查与模式匹配的键的一部分来快速估计与给定模式匹配的键的数量。
python中的示例;计算所有以prefix_
:开头的键
import redis
r = redis.StrictRedis(host = 'localhost', port=6379)
iter=1000
print 'Approximately', r.dbsize() * float(sum([r.randomkey().startswith('prefix_') for i in xrange(iter)])) / iter
iter=100
与相比,即使在我的情况下也给出了不错的估计keys prefix_
。
一种改进是在每个请求上采样1000个键,但保留总数,以便在两个请求之后将除以2000,在三个请求之后将除以3000。因此,如果您的应用程序对总数感兴趣经常匹配密钥,那么每次它将越来越接近真实值。