AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 63383
Accepted
thanksyo
thanksyo
Asked: 2009-09-09 07:27:43 +0800 CST2009-09-09 07:27:43 +0800 CST 2009-09-09 07:27:43 +0800 CST

内存缓存与内存缓存?

  • 772

我想使用 memcached

http://www.danga.com/memcached/

我已经通过yum install memcached

但是现在我需要连接到 PHP,并且有一个名为 memcache 的扩展和一个名为 memcached 的扩展?啊啊啊啊

http://us3.php.net/manual/en/book.memcache.php
http://us3.php.net/manual/en/book.memcached.php

有人可以在这里指出我正确的方向..哪一个会起作用?

另外,即使它是本地的,我是否需要打开任何端口才能工作?运行它后,我尝试 telnet 127.0.0.1 11211 并且连接被拒绝。

linux
  • 9 9 个回答
  • 69815 Views

9 个回答

  • Voted
  1. Nate
    2009-09-09T08:08:46+08:002009-09-09T08:08:46+08:00

    您可能希望查看PHP 客户端比较。

    简短版本:它们都可以工作,在大多数情况下,任何一个都可以。

    关于另一个问题:是的,你应该能够做到telnet 127.0.0.1 11211。很少有防火墙会阻止 localhost 与自身通信。如果您无法连接,请通过执行验证 memcached 是否确实在运行ps auxwww | grep memcached,这还将显示用于启动 memcached 的命令行参数。其中一个参数应该是-p 11211或另一个端口号。查看man memcached所有可能参数的含义。

    • 57
  2. David Pashley
    2009-09-09T09:56:11+08:002009-09-09T09:56:11+08:00

    正如 Nate 的链接所暗示的,两者都非常适合简单的使用。但是,memcached 支持更多功能,可让您充分利用 memcached 的性能。二进制协议减少了客户端和服务器之间需要发送的数据量。Multigets 和 multisets 允许您同时获取/设置多个项目。如果你发现你需要更多的 memcache 功能,memcached 是更好的模块。libmemcached 的使用表明该库本身可能比仅 PHP 的版本更优化。

    与 memcache 相比,Memcached 是一个更新的模块,仅在 8 个月前发布。如果您需要针对旧版本的 PHP,那么您只能真正使用 memcache。

    • 29
  3. Best Answer
    Jessica McKinnon
    2009-09-09T08:16:01+08:002009-09-09T08:16:01+08:00

    简短的回答:任何一个都是您正在寻找的,但我的第一选择是 memcache(您列出的第一个),纯粹基于其正确使用命名法。

    现在我是如何得出这个结论的:

    这是命名约定的快速背景资料(对于那些不熟悉的人),它解释了提问者的挫败感:对于许多 *nix 应用程序,执行后端工作的部分称为“守护进程”(想想 Windows 中的“服务”-土地),而接口或客户端应用程序是您用来控制或访问守护程序的。守护程序通常与客户端命名相同,并附加字母“d”。例如,“imap”将是一个连接到“imapd”守护进程的客户端。

    当您阅读memcache 模块的介绍时, memcache显然遵守了这种命名约定(请注意此摘录中 memcache 和 memcached 之间的区别):

    Memcache 模块为高效的缓存守护进程 memcached 提供了方便的过程和面向对象的接口,专门用于减少动态 Web 应用程序中的数据库负载。

    Memcache 模块还提供了一个会话处理程序(memcache)。

    有关 memcached 的更多信息,请访问 » http://www.danga.com/memcached/。

    这里的挫败感是由 PHP 扩展的作者造成的,该扩展名为memcached ,因为它与名为memcached的实际守护进程共享相同的名称。另请注意,在memcached(php 模块)的介绍中,提到了libmemcached,它是模块用来访问 memcached 守护进程的共享库(或 API):

    memcached 是一个高性能的分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。

    此扩展使用 libmemcached 库来提供与 memcached 服务器通信的 API。它还提供了一个会话处理程序(memcached)。

    关于 libmemcached 的信息可以在 » http://tangent.org/552/libmemcached.html找到。

    总而言之,两者在功能上是相同的,但它们只是有不同的作者,而且一个人的名字比另一个人更合适。

    • 26
  4. tylerl
    2010-08-24T20:15:37+08:002010-08-24T20:15:37+08:00

    更老、更臭的那个之所以被称为php-memcache是因为那似乎是最合适的名字。由 Digg 的人们独立开发的更新、更好的版本改为php-memcached为了消除歧义而命名。

    仅根据名称的正确性建议您选择其中一个的人确实没有提供技术建议的业务。

    • 23
  5. user25576
    2009-11-10T13:08:59+08:002009-11-10T13:08:59+08:00

    最近使用了 php-memcache,我不得不将您指向 php-memcached。

    这是我头脑中的几个原因..

    1) 没有 getErrorCode() 或等效方法,因此如果 get() 返回 FALSE,您将不知道这是因为存储在 memcache 中的值是 false,还是存在某种问题。

    2) 其用于一致散列的散列算法似乎与其他实现不同,例如许多基于 libmemcached 构建的客户端库。这意味着,如果您想使用具有多种语言的同一个 memcache 集群,您可能会遇到问题,您将使用 PHP 客户端存储一个值,而其他客户端将找不到它。

    • 7
  6. Brian Moon
    2010-06-25T09:26:59+08:002010-06-25T09:26:59+08:00

    截至今天,两者都有问题。PECL/memcache 是旧的和可靠的,除了一些已经过时的例外。PECL/memcached 1.x 充其量只是测试版。有些函数不处理数字键,它在使用持久连接时会泄漏连接。一些(全部?)正在 GitHub 中修复,并将在 2.x 的某个时间点发布,但不是今天。有关更详细的评论,请参阅http://brian.moonspot.net/php-memcached-issues

    • 3
  7. CaptTofu
    2009-12-03T07:21:26+08:002009-12-03T07:21:26+08:00

    我正在写一本书“专家 PHP 和 MySQL”。关于差异,我写了几乎相同的东西。我推荐的是PECL/memcached。#1 - 它包含一个功能齐全、性能良好的 C 库 #2 - 它是最近维护的。#3 - 更多功能。没有贬低 PECL/memcache。

    • 2
  8. Spechal
    2012-09-06T11:24:43+08:002012-09-06T11:24:43+08:00

    我在使用 Drupal 6 和 php-pecl-memcached 时遇到了一些非常严重的问题,其中每次调用的响应时间最多延迟 5 毫秒,并且会导致一个特定站点创建的调用比更改为 php-pecl-memcached 之前多 5 倍. 更改为 php-pecl-memcache 解决了所有问题;延迟和额外的呼叫。

    这个答案只是为了帮助那些使用 Drupal 6 和可能使用 Drupal 7 的人。

    • 1
  9. user62392
    2010-12-03T22:16:38+08:002010-12-03T22:16:38+08:00
    • memcache 是 memcached 的客户端(服务器)
    • libmemcached 也是 memcached 的客户端

    还有其他 memcached 客户端,请参阅http://code.google.com/p/memcached/wiki/Clients

    从网上剪切和粘贴:

    http://www.php.net/manual/en/intro.memcache.php

      Memcache module provides handy procedural and object oriented 
      interface to memcached, highly effective caching daemon, which was 
      especially designed to decrease database load in dynamic web applications.
    The Memcache module also provides a session handler (memcache).
    More information about memcached can be found at » www.memcached.org 
    

    http://www.php.net/manual/en/intro.memcached.php

       » memcached (http://www_memcached_org/) is a high-performance, distributed 
      memory object caching system, generic in nature, but intended for use in 
      speeding up dynamic web applications by alleviating database load.
      This extension uses libmemcached library to provide API for communicating with
      memcached servers. It also provides a session handler (memcached).
      Information about libmemcached can be found at 
       » tangent.org/552/libmemcached.html
    

    http://pecl.php.net/package/memcached “通过 libmemcached 库与 memcached 交互的 PHP 扩展” 此扩展使用 libmemcached 库提供与 memcached 服务器通信的 API。https://github.com/andreiz/php-memcached

    http://pecl.php.net/package/memcache "memcached extension" Memcached 是一个缓存守护进程,专为动态 Web 应用程序设计,通过将对象存储在内存中来减少数据库负载。此扩展允许您通过方便的 OO 和过程接口使用 memcached。

    http://code.google.com/p/memcached/wiki/PHPClientComparison

                            pecl/memcache      pecl/memcached
      First Release Date      2004-06-08         2009-01-29 (beta)
      Actively Developed?     Yes                    Yes
      External Dependency     None              libmemcached
    
    • -3

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve