gpt4 book ai didi

具有多个项目的开发机器上的 Redis 数据库

转载 作者:IT王子 更新时间:2023-10-29 05:55:22 24 4
gpt4 key购买 nike

当其中一些项目使用 Redis 数据库时,您如何在开发和/或测试机器上管理多个项目?

主要有两个问题:

  1. Redis 没有命名数据库(只有数字 0-16)
  2. 测试很可能在每次运行时执行 FLUSHDB

现在,我认为我们有三个选择:

  1. 为每个项目、每个开发和测试环境分配不同的数据库
  2. 使用类似 redis-namespace 的项目名称为键添加前缀
  3. 在项目之间切换时随时对数据库进行 Nuke 和播种

如果多个项目将“0”分配给主要用途,将“1”分配给测试等,则第一个是有问题的。即使项目 B 决定更改为“2”和“3”,项目中的另一个成员也可能与他在另一个项目中发生冲突。换句话说,该方法对 SCM 不友好。

对于第二个,这是一个坏主意,因为它增加了不必要的运行时性能和内存效率开销。无论您做什么,当您加入该项目时,另一个项目可能已经巧合地使用了相同的 key 。

第三个选项是妥协的产物,但有时我想在为另一个项目部署小补丁时保持本地数据不受影响。

我知道这可能是 Redis 的功能请求,但我现在需要一个解决方案。

有什么想法、做法吗?

最佳答案

如果项目是独立的,因此不需要共享数据,那么使用多个 redis 实例会更好——每个项目配置都有一个端口号而不是数据库名称/id。为每个实例创建一个适当命名的配置文件和启动脚本,这样您只需单击一下即可获得需要运行的任何实例。

确保更新每个配置文件中的保存设置以及设置端口 - 使用相同 dump.rdb 文件的多个实例可以工作,但会导致一些相当困惑的错误。

我还使用单独的实例进行开发和测试,这样测试实例就不会向磁盘写入任何内容,并且可以在每次测试开始时刷新。

关于具有多个项目的开发机器上的 Redis 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com