如何统计reids内的特定key

是这样,项目的在线好友是用redis的set做的,在每个用户登录的时候

set user_123466 时间戳 60*5  //user_用户id

这样里面有很多user_*的数据,现在要统计在线人数,怎么查找呢?
当前库还有许多其他信息,所以不能用dbsize,
info里面的key数量也不能用.

阅读 14k
3 个回答

redis的keys命令可以满足你的查询要求。

http://redis.io/commands/keys

redis> MSET one 1 two 2 three 3 four 4
OK
redis> KEYS *o*
1) "one"
2) "two"
3) "four"
redis> KEYS t??
1) "two"
redis> KEYS *
1) "one"
2) "two"
3) "three"
4) "four"
redis> 

20w数据测试,
在cli模式keys *用时11秒,
在php里面用时0.2秒, 0.0

$re = $redis->keys('*');    
dump(count($re));

可能php扩展里面做了些什么

如果不想靠编程语言,那么当key的量很大的时候就不能用keys了,可以用命令行:

redis-cli -h 主机 -p 端口 -a 密码 keys "user_*" | wc -l

这样就能统计出行数了哈

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题