如何在Heroku上查询Redis的存储内容、过期时间与元数据?
在Heroku上查询Redis的方法
我首次用Redis缓存计算密集型代码片段,效果不错。现在想深入学习,要查询Redis里存储的内容、过期时间、元数据,同时学习Redis的使用方法,请问怎么在Heroku上查询Redis?
我已尝试的操作
我通过heroku ps:exec进入dyno,之后尝试使用redis-cli:
redis # -bash: redis: command not found redis-cli #-bash: redis-cli: command not found
我还在多个目录查找相关文件:
ls /bin | grep redis ls /usr/local/bin | grep redis ls /sbin | grep redis
但没找到任何相关内容。
我已经获取到REDIS_URL和REDIS_TLS_URL配置变量:
heroku config | grep REDIS REDIS_TLS_URL: rediss://:asdfasdfasdf@ec2-12-345-67-890.compute-1.amazonaws.com:31840 REDIS_URL: redis://:asdfasdfasdf@ec2-12-345-67-890.compute-1.amazonaws.com:31839
但不确定能不能直接连接这些地址,或者从本地终端查询?
解决方案
方法一:本地终端连接(推荐)
如果本地已安装redis-cli,直接用获取到的URL连接即可:
- 加密连接(用
REDIS_TLS_URL):
redis-cli -u $REDIS_TLS_URL
或者直接填入完整URL:
redis-cli -u rediss://:asdfasdfasdf@ec2-12-345-67-890.compute-1.amazonaws.com:31840
- 非加密连接(用
REDIS_URL):
redis-cli -u $REDIS_URL
连接成功后,可用以下Redis命令查询:
- 查看所有键:
KEYS *(生产环境建议用SCAN 0替代,避免阻塞服务) - 查看字符串类型键的内容:
GET <key> - 查看哈希类型键的所有字段和值:
HGETALL <key> - 查看键的过期时间(单位:秒):
TTL <key>(返回-1表示永不过期,-2表示键不存在) - 查看键的数据类型:
TYPE <key> - 查看键的内存占用:
MEMORY USAGE <key>
若本地未安装redis-cli,可按系统类型安装:
- macOS:
brew install redis - Ubuntu/Debian:
sudo apt-get install redis-tools - Windows:可通过Redis官方安装包或WSL环境安装
方法二:在Heroku Dyno中临时安装redis-cli
若不想在本地安装,可进入dyno后临时安装:
- 进入dyno:
heroku ps:exec - 根据dyno系统安装:
- Debian/Ubuntu系dyno:
sudo apt-get update && sudo apt-get install -y redis-tools- Alpine系dyno:
apk add redis-cli - 安装完成后,用URL连接:
或加密连接:redis-cli -u $REDIS_URLredis-cli -u $REDIS_TLS_URL
内容的提问来源于stack exchange,提问作者stevec
相关产品推荐
相关产品推荐

