Redis 加上密码后,整体性能下降 20%?

42 天前
 cuishuang

这太震惊了...(图片来自极客时间 安全攻防技能 30 讲)

难道每次执行什么 get,set 操作,都会检测一遍密码吗? 我理解不能像 mysql 一样,有个连接池,初始化一些长连接,之后就不用再认证/鉴权什么的了

6460 次点击
所在节点    Redis
43 条回复
Zzdex
42 天前
有点扯
tomczhen
42 天前
IT 民科
WonderCc
41 天前
这不扯淡吗
flyqie
41 天前
每次链接都 auth 一下这玩法太智障了,redis 这么用了怕不是被人笑话一辈子。。

极客时间的课水到这种程度了吗?
flyqie
41 天前
@flyqie #24

打错了。。

应该是每次操作
Rehtt
41 天前
@GeekGao 零信任模型
shakeyo
41 天前
他这是每次执行命令都用新连接?
whoosy
41 天前
用脚趾头想想都不可能
crystom
41 天前
php 传统 fpm 模式是这样的,不过一般也用在性能敏感的场景像后台管理,没问题的
me1onsoda
41 天前
要连接池这个,jedis 不就是吗
cheng6563
41 天前
没搞连接池吧,每次发指令都重新验密码
8355
41 天前
我没看源码。。。但是我觉得如果 redis 是这样设计的 那连接的意义在哪里? 这不符合常规认知。。。。。
vczyh
41 天前
别的不清楚,我写过 RESP 协议,客户端认证的时候只需要发送 AUTH command ,这个之后不会每次发送认证信息,只需要发送执行的 command 就可以,所以理论上不会影响性能。
vczyh
41 天前
InDom
41 天前
作为一个经常使用 telnet 当 redis-cli 的人表示,起码 auth 只会在创建链接的时候发一次密钥后续是不需要发的。

至于每次请求服务端会检查,我觉得一个稍微成熟的开发都不会出现这个问题。

至于测试环境,是不是每次都 new Redis 了?

如果是,那结果就算是 50% 我也理解。
tingyunsay
41 天前
csdn 即视感
wetalk
41 天前
极客时间很多作者纸上谈兵,根本没有实操经验,信他们不如信坛子里的老哥
Dream95
41 天前
这样的也能卖课
error0
41 天前
在 server.c 的 processCommand() 方法执行命令之前 会执行 authRequired() , 判断 client 的 authenticated 是否为 1 (如果开启认证)。执行 authCommand 的时候如果账号密码正确就标识为 1 。


processCommand: https://github.com/redis/redis/blob/8a05f0092b0e291498b8fdb8dd93355467ceab25/src/server.c#L3948

authCommand: https://github.com/redis/redis/blob/8a05f0092b0e291498b8fdb8dd93355467ceab25/src/acl.c#L1490
nothingistrue
41 天前
这大概是「几十年」前的销售推广,因为很早就把技术人员开了只剩商务人员,就一直这么往外面忽悠人。代码安全审查领域,你只要见得多了,就总会碰到这样的坑爹玩意,客户资质越高,越容易碰到。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX