是否有一个Redis命令获取数据库中的所有键?我见过一些python-redis库获取它们。但我想知道从redis-client是否可以。
当前回答
看看下面的Redis小抄。 要使用redis-cli获取一个redis键的子集,我使用这个命令
KEYS "prefix:*"
其他回答
如果你正在使用Laravel框架,那么你可以简单地使用这个:
$allKeyList = Redis::KEYS("*");
print_r($allKeyList);
在核心PHP:
$redis = new Redis();
$redis->connect('hostname', 6379);
$allKeyList = $redis->keys('*');
print_r($allKeyList);
在Redis中获得所有键
使用——scan选项获取所有键:
$ redis-cli --scan --pattern '*'
使用keys命令列出所有密钥:
$ redis-cli KEYS '*'
使用redis-cli,你可以连接到你的远程redis-server,然后命令:
KEYS *
没有显示任何东西,或者更好,它显示: (空列表或集合)
如果你绝对确定你使用的Redis服务器就是你拥有数据的服务器,那么可能你的Redis -cli没有连接到正确的Redis数据库实例。
正如Redis文档中提到的,新连接默认连接到db 0。
在我的情况下,KEYS命令没有检索结果,因为我的数据库是1。为了选择您想要的db,请使用select。 db用整数标识。
SELECT 1
KEYS *
我发布这个信息是因为之前的答案都没有解决我的问题。
针对Redis 2.8及以上版本更新
正如在之前回答这个问题的评论中所指出的,KEYS是一个潜在的危险命令,因为您的Redis服务器在服务时将不可用,无法执行其他操作。使用KEYS的另一个风险是,它可能会消耗(取决于密钥空间的大小)大量RAM来准备响应缓冲区,因此可能耗尽服务器的内存。
Redis的2.8版引入了SCAN系列命令,这些命令更加礼貌,可以用于相同的目的。
CLI还提供了一种很好的方式来使用它:
$ redis-cli --scan --pattern '*'
你可以简单地连接到你的redis服务器使用redis-cli,选择你的数据库和类型键*,请记住它会给你所有的键,目前选定的redis数据库。
推荐文章
- 我如何移动一个redis数据库从一个服务器到另一个?
- Redis比mongoDB快多少?
- 在Redis中打印按键数量
- Redis是单线程的,那么它如何做并发I/O?
- 如何连接远程Redis服务器?
- 无法连接到Redis在127.0.0.1:6379:连接拒绝与自制
- 多Redis数据库的意义是什么?
- 如何列出所有的Redis数据库?
- 为什么我们需要像RabbitMQ这样的消息代理而不是像PostgreSQL这样的数据库?
- 检查Redis服务器版本
- Redis键命名约定?
- Linux—只安装redis-cli
- Redis只是一个缓存吗?
- 对持有错误类型值php的键进行操作
- WSL Redis遇到系统没有启动,systemd作为初始化系统(PID 1)。不能操作