当前位置: 首页 > news >正文

后端连接 Redis 数据库

一、核心原理

  1. 连接 Redis 后执行命令SELECT N切换数据库,N 取值 0~15
  2. 客户端初始化时可直接指定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
代码动态切换 db
@Autowired private StringRedisTemplate redisTemplate; public void testDb1() { // 切换db1执行操作 redisTemplate.execute((RedisCallback<Object>) 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(host="127.0.0.1", port=6379, db=0, decode_responses=True) # db1 r1 = redis.Redis(host="127.0.0.1", port=6379, db=1, decode_responses=True) 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

四、注意事项

  1. 数据库相互隔离:db0 和 db1 的 key 完全独立,相同 key 互不干扰
  2. FLUSHDB只清空当前选中库;FLUSHALL清空全部 16 个库
  3. Redis 集群模式下不支持多 db,只能使用 db0
  4. 生产环境推荐:不同业务分不同 Redis 实例,而非只用 db 区分,隔离性更好
http://www.jsqmd.com/news/1094136/

相关文章:

  • 罗德与施瓦茨RS ZNB3000矢量网络分析仪
  • 比 iTerm2 更适合 Claude Code/Codex 的终端,我换成 Ghostty 了
  • 进程备忘录
  • 从实战到预防:NBU证书生命周期管理与Error 8506深度解析
  • 路由器里有个你看不到的队列
  • 模具全流程数字化验证三方案横评:CMM、激光扫描、蓝光3D扫描谁更香?
  • 一分钟学会 C++ 标准模板库智能指针
  • 独立开发者用MonkeyCode一个月:我的真实收入变化
  • 做了一个月 Skills,我才理解 Agent 可靠性的本质
  • 钉钉ONE项目用10个月证明了一件事:资源多不等于做得好
  • PHP无字母数字RCE:位运算与临时文件上传的绕过艺术
  • 逆向工程实战:VMP 3.x x64壳导入表修复与VMPDump工具应用
  • 热场分布一目了然!安科瑞光纤测温系统,让数据说话
  • 从滤波器到匹配滤波:幅频与相频特性如何塑造信号处理
  • 2026耳夹耳机哪个品牌好?耳夹耳机排行榜前十名多维度参数测评
  • ESP32 入门教程(一):使用 GPIO 控制 LED 亮灭
  • 轻量化算力方案:某科技公司的AI研发算力服务器案例
  • LSLIDAR激光雷达C16-V4 改频率
  • NPDP培训机构怎么选?盯着这4个问题问就对了!
  • LangChain基础实践——论文阅读助手
  • 华大九天加大投资并购力度,韬定律驱动EDA全流程加速布局
  • 计科八股20260629——离散数学复习(数理逻辑、集合论、代数结构,图论明天补)
  • AutoCAD Architecture 2027下载安装教程【超详细】保姆级图文教程(附安装包)
  • 兰大一篇顶刊插图翻车,全网科研人慌了:AI绘图彻底禁用?
  • Java毕业设计-基于 SpringBoot 框架的项目审批管理系统设计与开发 面向企业的项目评审流程管理系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 写 Dioxus Demo 不难,难的是把它写成项目
  • 淘宝电商课程哪个更适合新手
  • Java单例模式
  • 2026年企业采购AI外呼系统:怎么选性价比更高?
  • 终极免费跨平台KVM软件指南:如何用Barrier一套键鼠控制多台电脑