memcache使用

来源:互联网 发布:unity3d人物模型下载 编辑:程序博客网 时间:2024/05/23 01:25
## 缓存(cache)


因为磁盘读写性能相对内存较慢,为了加快查询数据速度,为了充分利用内存资源。 我们就将数据存放内存中。

缓存如何做:

    首先php先从缓存中读取数据,如果缓存中没有拿到想要数据,才从数据库中查询,得到数据后将数据放到缓存中,然后再返回给PHP。 如果缓存中有想要的数据,直接从缓存中得到,就不查询数据库。



缓存分类


按照存放介质分类:

    1. 内存缓存
    
            将数据放到内存中就叫内存缓存

    2、 文件缓存

            将数据放到文件中就叫文件缓存


    3. 数据库缓存

           一般不怎么使用


按照存放内容分类:

    1、 数据缓存

        数据缓存中只有从数据库拿出来的数据

    2、 页面静态化

        
        就是将动态页面变成静态页面。 页面静态化中包含数据: 1、 HTML代码、js、css代码 2、 从数据库拿出来的数据


选择哪种缓存?

    内存缓存还是文件缓存?

        内存缓存: 优点: 1、 读写快 

                   缺点: 1、 内存相对磁盘成本高 2、 内存空间小   3、 内存断电,内存中的数据就丢失   


        文件缓存: 缺点: 1、 读写相对内存缓存慢  

                优点: 1、 成本相对内存低  2、磁盘空间大  3、 数据不会丢失


        所以, 如果数据比较小,并且是热数据(经常被操作的数据就是热数据),应该选择内存作为缓存。 一般热数据大小相对较小, 热数据有: 1、 热销商品数据 2、 首页的商品数据 3、 头条

        当数据较大,并且热度没有那么高,就应该选择文件作为缓存。


    数据缓存还是页面静态化:

    
        如果一个页面变动不大,就应该选择页面静态化,

        如果一个页面中数据变动较大,应该选择数据缓存。



        一般如果是文章详情,应该选择做页面静态化。

        如果是商品详情页,一般选择的数据缓存。

        
***********************************
## Memcache
Memcache可以操作内存,就是可以将数据存到数据,也可以从内存把数据拿出来。

它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。



##php操作Memcache

php要想操作memcache,必须安装相关memcache扩展。安装好扩展后,就可以使用扩展提供的Memcache类


## 缓存

原理:先查询缓存中有没有要的数据,如果有,就直接返回缓存中的数据。

如果缓存中没有要的数据,才去查询数据库,将得到数据先存放到缓存中,然后再返回给php。


优点: 1、 减少了对数据库的读操作,数据库的压力降低  2、 加快了响应速度  

缺点: 1、 因为内存断电就清空数据,存放到内存中的数据可能丢失

       2、 缓存中的数据可能与数据库中数据不一致

       3、 内存的成本高 

       4、 内存容量相对硬盘小


缓存分类:

  1. 按照存放的介质分类
       a. 内存    b. 硬盘
        
        存放到内存中的数据,叫做内存缓存
        存放到硬盘中的数据,叫做文件缓存


       选择内存缓存还是文件缓存:

         a. 根据你的数据特点来选择。

                如果你数据比较小,并且是热门数据(热数据),应该选择内存缓存。

                如果你数据比较大,应该选择文件缓存。

  2. 按照存放数据来分类

     a. 数据缓存    b. 页面静态化

       数据缓存: 数据缓存只会将从数据库中查询出来的数据缓存 。
        


       页面静态化: 将动态的页面变成静态的页面。产生的静态页面应该保存到文件中。


           

     


MySQL本身性能就相对比较很慢。因为MySQL数据最终存放到硬盘上。 
所以MySQL的读(select)写(update insert delete)性能都相对不高。



**************************************
## Memcached

memcached他是一个软件,通过memcached可以让你操作内存。就是可以将数据存放到内存中,也可以拿出来。



如何看memcached是否启动

   netstat -tlunp  | grep 11211


如何登录到memcache中

  //将数据存放到memcached中
   set  key   1  3   2

  //从memcache中获取数据
   get key

memcached提供的命令

### php要想操作memcache,必须安装扩展


### 缓存时间肯定不能是永久缓存。 缓存时间如何设置


  1. 缓存时间最好在后台可以修改。

  2. 缓存时间能够设置成一样吗?

      不行,原因: 如果缓存过期了,一起查询数据库,数据库压力大。这种情况叫做缓存雪崩。

      缓存时间最后有一个时间差。

      
  



   



    



    
原创粉丝点击