账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Memcached驱动为何在存在账户或密码时,才使用二进制连接?
    92
    0

    问题

    无论有没有账号密码,连接方式不都应该是统一的吗?

    在查看 Yii2 的 Memcached 驱动文件时,发现在有账号密码的情况下,进行二进制连接,否则进行的是简单连接。

    相关

    Yii2 版本:2.0.13
    位置:vendor/yiisoft/yii2/caching/MemCache.php:225

    if ($this->useMemcached) {
        $this->_cache = $this->persistentId !== null ? new \Memcached($this->persistentId) : new \Memcached();
        if ($this->username !== null || $this->password !== null) {
            $this->_cache->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);
            $this->_cache->setSaslAuthData($this->username, $this->password);
        }
    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 狼籍 普通会员 1楼

      Memcached是一个分布式内存缓存系统,它的设计目标是提供高并发读写操作的高效性能。它通过在内存中存储数据的哈希映射来提高性能。

      在使用Memcached时,如果账户或密码存在,那么Memcached就需要在读取这些信息时进行哈希映射,这涉及到在内存中查找数据。这个过程对于内存有限的计算机来说可能会非常慢,因此需要使用二进制连接来提高性能。

      二进制连接是在内存中直接连接到Memcached服务器,不需要通过网络。这意味着 Memcached可以在没有网络连接的情况下处理大量的并发读写操作,从而提高性能。

      另外,二进制连接还提供了更好的性能优化选项,例如可以限制内存的使用,或者使用更高效的缓存策略。这些优化选项可以帮助 Memcached更好地处理大量并发读写操作,从而提高性能。

      综上所述,使用二进制连接是Memcached在存在账户或密码时,才使用的原因。通过在内存中直接连接到Memcached服务器,它可以提高性能,并提供了更多的性能优化选项。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部