想问一下 redis 的切换数据库的性能开销,有没有生产中遇到问题的。
目前业务需要对用户权限进行缓存,感觉上单独拿出来放在一个库里比较好,不与其他业务混在一起,看起来比较干净。但是如此一来业务代码中需要频繁进行 select 切换,比如用户每次发出一个请求,需要先 select 到权限库获取权限,然后再 select 到业务库获取缓存,多了这两步操作会不会产生性能问题?
或者单库里面有没有什么合适方案能最大程度避免冲突的?
1
ebingtel 2021-06-25 08:58:50 +08:00
如果不想和其他业务耦合,感觉新启动一个实例比较靠谱,redis 的多数据感觉有点鸡肋……性能问题还是小问题,就怕开发忘了 select db, 最终搞乱了、flush 了
|
2
wowo243 2021-06-25 09:00:46 +08:00
搞两个连接池分别配置为不同的 db,注入的时候使用不同的名称,用哪个库就注入对应名称的 bean
|
3
jedrek 2021-06-25 09:02:08 +08:00 1
如果是业务问题需要分开存放,就不是 select db 的问题,开启多个实例也需要两次先后的查询。
如果单单说 redis 切换数据库的网络开销,可分别对每个 db index 建立连接池,使用时区分,不再需要先 select db |
4
v2orz 2021-06-25 09:03:24 +08:00
使用两个 db 跟使用不同的前缀区分,没有什么区别。redis 的多数据库感觉没什么用,集群还不支持
|
5
crystom 2021-06-25 09:13:33 +08:00
用的什么语言
|
6
kxjhlele 2021-06-25 09:48:42 +08:00
忘从哪里看到过,连开发者都后悔开发多数据库了,现在就是为了兼容,
所以建议你启动新实例吧, |
7
lbunderway 2021-06-25 09:52:09 +08:00
同意 2 楼简介,我也是这样整的
|
8
THESDZ 2021-06-25 13:36:32 +08:00
我也同意二楼,万一以后且实例也方便.
|