由于是采用脚本安装的memache,所以软件的依赖关系我就不操心了,脚本已经帮我装好了和php的关联关系,实在是很省心。后续如果有需要,我会针对windows和linux各写一个安装和配置的说明,一来提高自己的水平,而来也给有需要的朋友们。

因此这次我将关注点放在memcache的配置以及php的操作上。

1.启动Memcache的服务器端:

如果是虚拟机的话,你的写的ip要能用ping 命令ping通。这样才可以使用。我刚开始就在上面浪费了许多时间。
# ./memcached -d -m 10 -u root -l 127.0.0.1  -p  12000  -c  256
-P /tmp/memcached.pid

 -d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

memcache中的常量。

memcache中set(‘key’, ‘value’, 0, 60)

其中的0是MEMCACHE_COMPRESSED ,的值。

MEMCACHE_COMPRESSED (integer)

用于在 Memcache::set(), Memcache::add() 和 Memcache::replace()几个方法中指定是否对写入数据压缩。 

MEMCACHE_HAVE_SESSION (integer)   

1代表当前Memcache session处理器可用,其他为0

常用的几个方法:

Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器。 同样可以使用函数memcache_add()

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

key

将要分配给变量的key。

var

将要被存储的变量。字符串和整型被以原文存储,其他类型序列化后存储。

flag

使用MEMCACHE_COMPRESSED标记对数据进行压缩(使用zlib)。

expire

当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。

分割线后是我自己写的一个小的demo,简单说明memcache的用法。

关于memcache,用法实在是很简易。网上的资料也很多。下面这个网址可以参考下,写的很不错。

http://www.ccvita.com/259.html


 <?php
header("content-type:text/html;charset=utf-8"); //实例化Memcache类.初始化条件
$memcache = new Memcache;
$memcache -> connect('127.0.0.1', 12000); //初始化mysql服务.
$link = @mysql_connect('127.0.0.1', 'root', '123456', 'test')or die('数据库连接失败'.mysql_error());
mysql_select_db('test');
mysql_set_charset('utf8'); //建立sql语句
$sql = 'select * from user';
$key = md5($sql); if($memcache -> get($key)){
//memecache缓存区间
echo '我是读的memcache缓存';
$result = $memcache -> get($key);
}else{
//mysql区间
echo '我是读的mysql';
$handle = mysql_query($sql);
if($handle){
while($array = mysql_fetch_array($handle)){
$result[] = $array;
}
}
mysql_close(); //关闭mysql资源
$memcache -> set($key, $result, MEMCACHE_COMPRESSED, 5); //MEMCACHE_COMPRESSED是常量1. 缓存5秒
} echo '<pre>';
print_r($result);
echo '</pre>'; ?>

下面是ThinkPHP里面写的一个小的demo.

首先要配置Common下面的config文件。配置文件如下:

<?php
return array(
/* 数据库设置 */
'DB_TYPE' => 'Mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'datebase', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => 'smm_', // 数据库表前缀 /* 数据缓存设置 */
'DATA_CACHE_TIME' => , // 数据缓存有效期 0表示永久缓存,我写了5秒,为了测试方便。
'DATA_CACHE_COMPRESS' => true, // 数据缓存是否压缩缓存
'DATA_CACHE_CHECK' => true, // 数据缓存是否校验缓存
'DATA_CACHE_PREFIX' => 'HOME_', // 缓存前缀
'DATA_CACHE_TYPE' => 'Memcache', // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator
'DATA_CACHE_PATH' => TEMP_PATH,// 缓存路径设置 (仅对File方式缓存有效) );

例子如下:

 class IndexController extends Controller {
//载入添加数据库
private $smm_iron_user; //初始化数据库,避免多次实例化。
public function __construct(){
parent::__construct();
$this -> smm_iron_user = M('iron_user');
} public function index () {
$sql = "select * from smm_iron_user";
$md5sql = md5($sql); if(S($md5sql)){
echo '我读的是缓存';
$result = S($md5sql);
}else{
echo '我读的是mysql';
$result = $this -> smm_iron_user -> query($sql);
S($md5sql, $result, 5);
}
//S($md5sql,null);
dump($result);die(); } }

linux下memcache的运用,和php结合小案例。的更多相关文章

  1. Linux下Memcache 安装和使用

    Memcached是一种高性能的分布式内存对象缓存系统(memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能,其“分布式”由客户端函数库完成,成熟算法的为一致性Hash),用 ...

  2. Linux 下memcache安装及使用

    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memca ...

  3. Linux下Memcache服务器端的安装

    最近在研究怎么让Discuz!去应用Memcache去做一些事情,记录下Memcache安装的过程. Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版 ...

  4. Linux下Eclipse以及Java环境安装教程[小白化](2019-9)

    Linux下安装Eclipse以及Java 一.前言 许久未用Eclipse, Ubuntu上也没装Eclipse, 今天安装发现, 好多东西都忘了. 不过经过一番查找(百度, csdn) 终于还是安 ...

  5. Linux下memcache的安装

    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用.‍关 ...

  6. Linux下memcache编译安装与基本使用

    memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libto ...

  7. Linux下memcache的安装和启动测试

    memcache是一套分布式的高速缓存系统,MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作:如果请求的数据不在me ...

  8. Linux下memcache的安装和启动

    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memca ...

  9. Linux下memcache的安装和启动(转)

    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memca ...

随机推荐

  1. 使用Spring Sleuth和Zipkin跟踪微服务

    随着微服务数量不断增长,需要跟踪一个请求从一个微服务到下一个微服务的传播过程, Spring Cloud Sleuth 正是解决这个问题,它在日志中引入唯一ID,以保证微服务调用之间的一致性,这样你就 ...

  2. react的基本学习

    1.<SubSubComp {...this.props } /> 传递属性,{...props}的方式为组件传递了这两个属性,这就是JSX中的延展属性,"..."成为 ...

  3. 转一篇Unity的相机动画控制

    最近真是忙,连研究细看的时间都没有了,原帖地址:https://alastaira.wordpress.com/2013/11/08/smooth-unity-camera-transitions-w ...

  4. LVS+Redis部署手册

    Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用 ...

  5. SpringMVC学习--springmvc和mybatis整合

    简介 springMVC是表现层,service充当业务层,mybatis作为持久层,通过spring将这三层整合起来.如下图: 第一步:整合dao层 mybatis和spring整合,通过sprin ...

  6. jQuery能做些什么

    来源于: Learning jQuery, 4th Edition What jQuery does: 1. Access elements in a document; $('div.content ...

  7. JVM执行Java程序时内存的划分

    Java虚拟机在执行Java程序过程中会把它所管理的内存区域划分为若干个不同的数据区域. Java虚拟机所管理的内存包括以下几个运行时区域: 1.程序计数器(Program Couter Regist ...

  8. [转]响应式WEB设计学习(2)—视频能够做成响应式吗

    原文地址:http://www.jb51.net/web/70361.html 上集回顾: 昨天讲了页面如何根据不同的设备尺寸做出响应.主要是利用了@media命令以及尺寸百分比化这两招. 上集补充: ...

  9. GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理

    GIF/PNG/JPG/WEBP/APNG都是属于位图(位图 ,务必区别于矢量图): GIF/PNG和JPG这三种格式的图片被广泛应用在现今的互联网中,gif曾在过去互联网初期慢速的情况下几乎是做到了 ...

  10. 【深入Java虚拟机】之二:Java垃圾回收机制

    [深入Java虚拟机]之:Java垃圾收集机制 对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例.谈到Java堆中的垃圾回收,自然要谈到引用.在JDK ...