一、核心原理连接 Redis 后执行命令SELECT N切换数据库N 取值 0~15客户端初始化时可直接指定db: 0/db: 1无需手动执行 SELECT二、各主流后端代码示例1. Node.js (ioredis 推荐)const Redis require(ioredis); // 连接db0 const redis0 new Redis({ host: 127.0.0.1, port: 6379, password: , // 有密码填写 db: 0 // 指定0号库 }); // 连接db1 const redis1 new Redis({ host: 127.0.0.1, port: 6379, password: , db: 1 // 指定1号库 }); redis0.set(key0, db0数据); redis1.set(key1, db1数据);2. Java SpringBoot (Spring Data Redis)application.yml 配置spring: redis: host: 127.0.0.1 port: 6379 password: database: 0 # 默认0库改成1就是db1代码动态切换 dbAutowired private StringRedisTemplate redisTemplate; public void testDb1() { // 切换db1执行操作 redisTemplate.execute((RedisCallbackObject) conn - { conn.select(1); // select 1 切换1号库 conn.set(key2.getBytes(), db1测试.getBytes()); return null; }); }3. Python (redis-py)import redis # db0 r0 redis.Redis(host127.0.0.1, port6379, db0, decode_responsesTrue) # db1 r1 redis.Redis(host127.0.0.1, port6379, db1, decode_responsesTrue) r0.set(name, 库0) r1.set(name, 库1) print(r0.get(name)) print(r1.get(name))4. Go (go-redis)package main import ( context github.com/go-redis/redis/v8 ) func main() { // db0 客户端 rdb0 : redis.NewClient(redis.Options{ Addr: 127.0.0.1:6379, DB: 0, }) // db1 客户端 rdb1 : redis.NewClient(redis.Options{ Addr: 127.0.0.1:6379, DB: 1, }) ctx : context.Background() rdb0.Set(ctx, test, db0, 0) rdb1.Set(ctx, test, db1, 0) }5. PHP (Predis)?php require vendor/autoload.php; use Predis\Client; // db0 $redis0 new Client([ host 127.0.0.1, port 6379, database 0 ]); // db1 $redis1 new Client([ host 127.0.0.1, port 6379, database 1 ]); $redis0-set(a, 100); $redis1-set(a, 200);三、原生 Redis 命令切换库# 登录redis-cli redis-cli # 默认进入db0 127.0.0.1:6379 select 1 OK # 现在操作的是db1 127.0.0.1:6379[1] set test 123 # 切回db0 127.0.0.1:6379[1] select 0 OK四、注意事项数据库相互隔离db0 和 db1 的 key 完全独立相同 key 互不干扰FLUSHDB只清空当前选中库FLUSHALL清空全部 16 个库Redis 集群模式下不支持多 db只能使用 db0生产环境推荐不同业务分不同 Redis 实例而非只用 db 区分隔离性更好