목차
回复讨论(解决方案)
백엔드 개발 PHP 튜토리얼 关于memcache的使用(入门级问题),memcache已经配置好,如何才能通过使用它来加快访问速度?

关于memcache的使用(入门级问题),memcache已经配置好,如何才能通过使用它来加快访问速度?

Jun 23, 2016 pm 01:39 PM

如题

网上看了很多资料 大都是关于memcache配置安装  还有函数列表的

现在已经配置好  用echo $memcache->getVersion();也可以打印出版本了


该如何进行进一步的操作  来使响应速度增加

比如我现在我已经知道一条很复杂的sql语句执行时间很久 

如何针对这条sql语句进行操作?


如果描述不够清楚请说一下我尽量描述...   

谢谢~~


回复讨论(解决方案)

估计你是把应用场景想错了...

sql的问题首先是优化语句

当然你可以考虑将表放到临时内存表里处理

如题

网上看了很多资料 大都是关于memcache配置安装  还有函数列表的

现在已经配置好  用echo $memcache->getVersion();也可以打印出版本了


该如何进行进一步的操作  来使响应速度增加

比如我现在我已经知道一条很复杂的sql语句执行时间很久 

如何针对这条sql语句进行操作?


如果描述不够清楚请说一下我尽量描述...   

谢谢~~



memcache可以分担mysql的压力。
比如你有select的读语句要执行,每次读数据库前先从memcache缓存读,若是读不到再从mysql读,并将内容写到缓存,以便下次从缓存读。
memcache说白了可以降低数据库服务的读压力,而且是缓存,读快且压力小。

而“比如我现在我已经知道一条很复杂的sql语句执行时间很久”,要是想让它快你只能优化sql语句。

若是这句是个读操作,那么你可以写缓存,以后读的话就非常快了。

另外,缓存要注意一点,数据库update和delete的时候,缓存也要更新。~~~

当然,尽可能的优化是要先考虑做的

然后现在要做缓存希望能更快一些

那么 是要在每一个查询处来set or(and) get吗?

那岂不是非常的繁琐.

memcache 不可以缓解数据库的压力
如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗?
如果还要去检查库中数据是否更新的话,那要缓存做什么?

那么 memcache 适合由于什么样的场景呢?
当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能

memcache 不可以缓解数据库的压力
如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗?
如果还要去检查库中数据是否更新的话,那要缓存做什么?

那么 memcache 适合由于什么样的场景呢?
当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能



能否举个稍微具体的例子来说明下memcache的应用呢?  

===========
我现在要查询一个用户关注的各类信息.要分别去查各种条件的汇总起来然后去信息总表内查询.   这种情况下适合使用memcache吗(缓存各种条件的汇总结果,设置个过期时间)?

缓存主要应用于某个时间段不会更新而且经常连接数据库的页面或者程序,比如天气预报,商城的每日促销页面等等,这些访问量会比较大,而且不长更新使用缓存时限,比如每天的8时更新或者分几个时间段,看自己的需求了


如题

网上看了很多资料 大都是关于memcache配置安装  还有函数列表的

现在已经配置好  用echo $memcache->getVersion();也可以打印出版本了


该如何进行进一步的操作  来使响应速度增加


比如我现在我已经知道一条很复杂的sql语句执行时间很久 

如何针对这条sql语句进行操作?


如果描述不够清楚请说一下我尽量描述...   

谢谢~~



memcache可以分担mysql的压力。
比如你有select的读语句要执行,每次读数据库前先从memcache缓存读,若是读不到再从mysql读,并将内容写到缓存,以便下次从缓存读。
memcache说白了可以降低数据库服务的读压力,而且是缓存,读快且压力小。

而“比如我现在我已经知道一条很复杂的sql语句执行时间很久”,要是想让它快你只能优化sql语句。

若是这句是个读操作,那么你可以写缓存,以后读的话就非常快了。

另外,缓存要注意一点,数据库update和delete的时候,缓存也要更新。~~~






大姐是做PHP吗?

当然,尽可能的优化是要先考虑做的

然后现在要做缓存希望能更快一些

那么 是要在每一个查询处来set or(and) get吗?

那岂不是非常的繁琐.


当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能这句话没有看懂

memcache 不可以缓解数据库的压力
如果那打算将查询结果放在 memcache 中供下次使用,那么下次你得到的不就总是旧的数据吗?
如果还要去检查库中数据是否更新的话,那要缓存做什么?

那么 memcache 适合由于什么样的场景呢?
当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能


当你的程序已经在使用文件或数据库缓存中间结果时,那么使用 memcache 可以提升缓存的性能
 这句话没有看懂

说白了Memcache是一种内存缓存技术,是一种缓存手段,要看情况来使用。

对于频繁读取,每次读取重复率高,数据更新频度低的数据,用Memcache可以优化你的系统响应速度。

一般来说,Memcache的使用分为几个步骤:

1、在代码中,实例化Memcache对象
$mem = new Memcache;
$mem->addserver('127.0.0.1',11211);

2、在获取数据后,将数据缓存到Memcache,下面例子中$data就是需要缓存的数据,$key可以认为是Memcache缓存数据的唯一性标识
$mem->add($key,$data,MEMCACHE_COMPRESSED,60);

3、在需要数据时,从Memcache里面根据$key取数据
$val = $mem->get($key);

你这表述,memcache不是用来优化sql语句的,

它是用来临时 存储访问数据库后得到的数据,第一次获得数据后存储起来,下次访问的时候就不需要查询数据库,而是直接从内存中拿,从而达到减轻数据库访问压力.

而memcache相当于是面向对象的访问接口(内存缓存的过程式程序)

code中类似这样的逻辑
if($mem->get('key')){ // 判断是否已经存储
    // 已存储 从内存中获取
    
}else{
    $mem->set('key','value')  // 还没有存入缓存 存入
}

只是简单的调用这个,还是很简单的,自己试一下吧..

配置好了感觉效果不明显

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

세션 납치는 어떻게 작동하며 PHP에서 어떻게 완화 할 수 있습니까? 세션 납치는 어떻게 작동하며 PHP에서 어떻게 완화 할 수 있습니까? Apr 06, 2025 am 12:02 AM

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? Apr 01, 2025 pm 02:57 PM

phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? PHPStorm으로 개발할 때 때때로 CLI (Command Line Interface) 모드에서 PHP를 디버그해야합니다 ...

확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. 확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. Apr 03, 2025 am 12:04 AM

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

시스템 재시작 후 UnixSocket의 권한을 자동으로 설정하는 방법은 무엇입니까? 시스템 재시작 후 UnixSocket의 권한을 자동으로 설정하는 방법은 무엇입니까? Mar 31, 2025 pm 11:54 PM

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP의 CURL 라이브러리를 사용하여 JSON 데이터가 포함 된 게시물 요청을 보내는 방법은 무엇입니까? PHP의 CURL 라이브러리를 사용하여 JSON 데이터가 포함 된 게시물 요청을 보내는 방법은 무엇입니까? Apr 01, 2025 pm 03:12 PM

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

See all articles