Equent

Results 10 comments of Equent

Because of some security requirements, our multiple Redis instances cannot use the replication feature that comes with Redis. And they are located in different security zones. Between them, they can...

感觉这样搞,命令比命还长🤣,主要是配置本身比较多,线上环境基本上设置了密码这些,不是两三个参数就能开始同步的,确实不如设置通用配置文件替换环境变量 @suxb201 话说之前viper自动根据结构体读取环境变量是因为啥删掉了,改成手动解析来着?

@Rinai-R 也就是说,组合出两个接口定义,用户根据需要去实现对应的接口是吗?框架内的实现就把新方法实现出来,在耗时日志中判断?

可能并不是很好实现,目前框架日志使用zlog.Ins()函数获取当前的日志实例,若实现一个InsExtend()函数进行强转,若未实现DebugEnabled,可能需要更多额外的方式补全方法。我有空再研究一下吧,也麻烦您 @Rinai-R 如果有实现方式及时分享下😁

你要保证原有方法获取的实例还是原有的ILogger以保证兼容性,后面实现的新接口如何通过老方法zlog.SetLogger(zlog.ILogger)传入替换。还是说你的意思是完全不管老接口,直接使用新的接口实现DebugEnabled方法,在框架内调用时,使用不同的函数获取到新旧两个接口实现的同一个日志对象实例,达到兼容老接口的目的,而且新接口无需与老接口做兼容性适配?

按道理来说,如果用户实现的是原本日志接口,没有顺便实现extend接口函数,那么调用新函数拿取到的实例将出现类型转换错误,或者当出现没有实现时,我们使用默认的实现去解决这个问题(直接返回true)。那么还是会有debug日志hex部分耗时的性能问题。或者默认的实现返回false,那么当用户开启debug日志后,却不打印这条,也会导致与配置文件行为不一致的问题

是的,如果用户没法在一个日志实例中同时实现两个接口的方法,那么一致性将无法保证

试过了,level是2,主要耗时是在debug方法调用前的hex,不是debug本身

1、不需要指定rdb文件,sync_reader可以自己拉取rdb并同步的 2、redis集群模式下不能使用多db,请将数据都放在一个db 0中进行同步 以下回答来自GPT ![image](https://github.com/user-attachments/assets/825896a2-a6a4-4a6e-bacc-011fd935f7ea)

> 单节点里确实有两个DB,但是db0也没有同步,我需要在配置限制只同步db0吗? 可以先试试,就是先试试不触发select 命令切换数据库,如果还报错那再看是不是其他问题