The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
uiosun

go-zero 的 Redis 竟然只支持 0 库……

  •  
  •   uiosun · Mar 16, 2023 · 6934 views
    This topic created in 1335 days ago, the information mentioned may be changed or developed.

    我们是微服务架构,但业务比较小,单机 Redis 少许扩容就撑住了,现在有新独立业务就想切个缓存库,发现只支持 0 库。

    看了一些 issue ,社区主导者认为这会增加运维工作量,干脆不支持这个功能。

    业务已经开始写了一个月,现在切换估计不是很来得及。似乎只能 fork 一份自己改改?


    最后吐个槽:

    不是很理解这种:可以明明可以基于开发规范进行约束的问题,却直接干脆的放弃功能的设计思路。

    选 go-zero 的时候,是被宣称“大而全”的微服务框架吸引了,突发奇想了一个词:高大壮汉穿小鞋……

    Supplement 1  ·  Mar 17, 2023

    已经在大佬们的指点下,理解了 0 库的用途了,的确是之前没有这方面的研究,技能点缺失。

    再次感谢大家!

    27 replies  •  2024-04-17 17:32:11 +08:00
    ecric
    ecric
    Mar 16, 2023
    1
    我最近也在看这个框架
    xiaoshouchen
    xiaoshouchen
    Mar 16, 2023
    2
    只能使用 0 库难道不是很基础的规范嘛?
    hzzhzzdogee
    hzzhzzdogee
    Mar 16, 2023
    3
    0 库是什么意思, 求指教
    so1n
    so1n
    Mar 16, 2023
    4
    感觉这个库宣传比开发更用心...
    whatiam
    whatiam
    Mar 16, 2023
    5
    我认为只用 0 库是更科学的做法。如果有不同的业务,应该用前缀区分。只用 0 库最大的好处就是以后做 redis 集群的时候,不用改动这部分的代码了。
    lshero
    lshero
    Mar 16, 2023
    6
    @hzzhzzdogee redis 的 select 切换的那个
    hljjhb
    hljjhb
    Mar 16, 2023❤️1
    7
    ⌈Redis Cluster 竟然支持 0 库……⌋

    🤣
    ByteCat
    ByteCat
    Mar 16, 2023
    8
    很正常,只有单机的有 0-15 ,集群只有 0 库了,业务用不用 key 区分啦
    rekulas
    rekulas
    Mar 16, 2023
    9
    我也感觉这不是特别必要的,用库来区分业务似乎不合理,不然你们 50 个微服务那不是得部署几套 redis
    uiosun
    uiosun
    OP
    Mar 16, 2023
    10
    @xiaoshouchen @whatiam @ByteCat @rekulas

    原来集群时 0 库是规范,学到了

    ---

    那 Redis 推出多个库这个功能的意义在哪儿?之前都是 A 业务放 0 、B 业务放 1 、以此类推...,这样干净整洁

    有大佬再指点一下吗,有点迷惑
    uiosun
    uiosun
    OP
    Mar 16, 2023
    11
    @hljjhb 🤣这不是小业务,没上集群吗,大佬莫笑
    hljjhb
    hljjhb
    Mar 16, 2023❤️1
    12
    @uiosun 也不算规范吧,只是没太大必要,况且官方也不推荐用于区分不同产品

    In practical terms, Redis databases should be used to separate different keys belonging to the same application (if needed), and not to use a single Redis instance for multiple unrelated applications.
    crysislinux
    crysislinux
    Mar 16, 2023 via Android❤️1
    13
    @uiosun redis 作者说了这设计是一个错误。
    kawowa
    kawowa
    Mar 17, 2023 via iPhone
    14
    本来想提醒一下用了哨兵就只能用 0 库了,看到楼上已经说了。
    想区分系统或者键的话,用前缀和固定的匹配规则就好。
    swulling
    swulling
    Mar 17, 2023 via iPhone
    15
    @uiosun 集群版本不能指定 db

    但是我不同意 db 无意义。虽然是设计失误,但是既然有这个功能,下游还是得开放配置。

    go-zero 就是被国内开发环境吊打的太少,老板或者客户说,你的 db 就是 3 ,要么搞定要么滚蛋。你怎么办?
    yibin001
    yibin001
    Mar 17, 2023
    16
    自己改一下就好了啊,我这边用 go-zero 快 2 年了


    ```
    type RedisConf struct {
    cache.NodeConf
    PoolSize int `json:"PoolSize ,default=500 ,optional"`
    Db int `json:"Db, default=0,optional"`
    }


    ......

    //redis/v8 里是能支持指定不同 DB 的。
    client := redis.NewClient(&redis.Options{
    Addr: c.CacheRedis[0].Host,
    Password: c.CacheRedis[0].Pass,
    PoolSize: c.CacheRedis[0].PoolSize,
    DB: c.CacheRedis[0].Db,
    })

    ```
    keenkiller
    keenkiller
    Mar 17, 2023 via Android
    17
    多库无用,不同服务的 key 前缀区分开就行
    Rehtt
    Rehtt
    Mar 17, 2023 via Android
    18
    go-zero zero😀
    tramm
    tramm
    Mar 17, 2023
    19
    这么多人都用 0 库的嘛.
    看来我是异类了, 我就喜欢不同项目不同的库...
    bthulu
    bthulu
    Mar 17, 2023
    20
    多库当然是有用的. 只是 redis 集群搞不定这个事情, 迫不得已降级到仅支持 0 库.
    sujin190
    sujin190
    Mar 17, 2023 via Android
    21
    如果 redis 当做数据库而不是缓存那么分库其实就比分 key 好,缓存的话还是分 key 更好,redis cluster 本来就已经定位于缓存集群了吧
    JKeita
    JKeita
    Mar 17, 2023
    22
    使用 0 库很正常吧,自己搞集群或多实例呗
    8355
    8355
    Mar 17, 2023
    23
    @uiosun #11 没上集群也应该高可用啊...
    RangerWolf
    RangerWolf
    Mar 17, 2023
    24
    震惊了。。。 居然只能 0 库
    dif
    dif
    Mar 17, 2023
    25
    一直用 0 库,不同业务用 key:subkey:... 去区分了,当然,也要限制一些命令的执行。
    主要是不管多小的业务,上来就是一套 redis-cluster ,省的后面麻烦了。看业务要求,我们这算是打印个 hello world ,你也要做成高可用的。
    lotusgrm
    lotusgrm
    Jul 26, 2023
    26
    我觉得之所以 redis 集群的时候默认只支持 0 库,更多是为了简化集群管理,redis 集群中的所有节点共享相同配置,包含集群 redis 实例使用的数据库编号,通过把所有节点都配置成使用 0 号数据库,可以简化集群的管理和维护工作
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   912 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    ♥ Do have faith in what you're doing.