目 录CONTENT

文章目录

redis基础

~梓
2026-01-07 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Redis 基础知识问答

1. Redis 是否有多个数据库?

答: 是的,Redis 支持多个数据库。

  • Redis 默认提供 16 个数据库,编号从 015
  • 默认使用 0 号数据库
  • 可以通过 SELECT 命令切换数据库,例如:SELECT 1 切换到 1 号数据库
  • 可以在配置文件中通过 databases 参数修改数据库数量

注意事项:

  • 不同数据库之间的数据是隔离的
  • 但所有数据库共享同一个 Redis 实例的资源(内存、CPU等)
  • 在生产环境中,更推荐使用多个 Redis 实例而不是多个数据库来实现数据隔离

2. KEYS * 查看的是哪个数据库的键?

答: KEYS * 只会查看当前所在数据库的键,不会跨数据库查询。

示例说明:

# 默认在 0 号数据库
127.0.0.1:6379> KEYS *           # 只显示 0 号数据库的键
127.0.0.1:6379> SELECT 1         # 切换到 1 号数据库
127.0.0.1:6379[1]> KEYS *        # 只显示 1 号数据库的键

如何查看所有数据库的键?

Redis 没有直接命令查看所有数据库,需要手动切换:

# 方法:逐个切换数据库查看
SELECT 0
KEYS *
SELECT 1
KEYS *
SELECT 2
KEYS *
# ... 依此类推

实用技巧:

  • 使用 INFO keyspace 命令可以查看哪些数据库有数据
  • 注意命令提示符的变化:127.0.0.1:6379[1]> 中的 [1] 表示当前在 1 号数据库

重要提示:

  • KEYS * 在生产环境中慎用,数据量大时会阻塞 Redis
  • 推荐使用 SCAN 命令代替 KEYS

3. _kombu.binding.* 这些键是什么?

答: 这些是 Celery 任务队列框架创建的键。

键名解析:

_kombu.binding.celery.pidbox   # Celery 的远程控制命令绑定
_kombu.binding.celery          # Celery 默认任务队列绑定
_kombu.binding.celeryev        # Celery 事件监控绑定

背景知识:

  • Celery 是 Python 的分布式任务队列框架,用于异步执行任务
  • Kombu 是 Celery 底层使用的消息传递库
  • Redis 在这里作为 消息代理(Broker) 使用
  • 这些 binding 键用于管理消息队列的路由和绑定关系

常见的 Celery 相关键:

  • _kombu.binding.* - 队列绑定信息
  • celery - 默认任务队列
  • celery-task-meta-* - 任务结果元数据
  • unacked_* - 未确认的任务

如何清理:

# 如果不再使用 Celery,可以删除这些键
DEL _kombu.binding.celery.pidbox
DEL _kombu.binding.celery
DEL _kombu.binding.celeryev
# 或使用通配符(谨慎使用)
# Redis 4.0+ 支持
UNLINK _kombu.binding.*
0

评论区