memcached连接oracle,Memcached的介绍、安装和使用

一、Memcached介绍

1、什么是Memcached?

Memcached是国外社区网站LiveJournal的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

2、Memcached的运行图

98fd42c498d002aa4a39fab6c8ba3ba6.png

二、Memcached安装和使用

1、Memcached安装

安装步骤:先安装libevent,再安装Memcached主程序

安装libevent:

yum –y install libevent*

再安装Memcached:

tar -xzf memcached-1.4.10.tar.gz

cd memcached-1.4.10

./configure --prefix=/usr/local/memcache

make && make install

useradd memcache

passwd memcache

2、 Memcached运行

启动Memcached:

/usr/local/memcache/bin/memcached -p 11211 -u memcache &

关闭服务:

kill %1 #1表示为后台服务的数字标识

查看Memcached帮助信息:

/usr/local/memcache/bin/memcached –h

检查是否正常启动:

ps –aux | grep memcached

netstat –tunpl | grep :11211

telnet 192.168.10.1 11211 #测试连接状态

stats #统计Memcached的各种信息

3、Memcached和PHP结合使用

(1)、需要安装PHP Memcache扩展

编译安装memcache

tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

配置:

ls -l /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

vi /usr/local/php/etc/php.ini

新增以下配置内容:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

extension="memcache.so"

检查安装结果:

/usr/local/php/bin/php –m

/usr/local/apache2/bin/apachectl restart

(2)、PHP和Memcache结合的测试代码

//连接memcache

$mem = new Memcache;

$mem->connect('localhost',11211);

//保存数据

$mem->set('key1','this is first value',0,60);

$val = $mem->get('key1');

echo "Get key1 value:".$val."
";

//替换数据

$mem->replace('key1','this is replace value',0,60);

$val = $mem->get('key1');

echo "Get key1 value:".$val."
";

//保存数组数据

$arr = array('aa','bb','cc');

$mem->set('key2',$arr,0,60);

$val2 = $mem->get('key2');

echo "Get key2 value:";

echo "

";

print_r($val2);

//关闭连接

$mem->close();

?>

(3)、PHP和Memcache分布式:在一台或者多台机器启用一个或者多个进程,这里是在一台机器启用两个进程,使用两个接口:

/usr/local/memcache/bin/memcached –u memcache –p 11211 &

/usr/local/memcache/bin/memcached –u memcache –p 11212 &

/usr/local/memcache/bin/memcached –u memcache –p 11213&

示例代码:

//连接memcache

$mem = new Memcache;

$mem->addServer('localhost',11211);

$mem->addServer('localhost',11212);

$mem->addServer('localhost',11213);

//保存数据

$mem->set('key1','this is first value',0,60);

$val = $mem->get('key1');

echo "Get key1 value:".$val."
";

//替换数据

$mem->replace('key1','this is replace value',0,60);

$val = $mem->get('key1');

echo "Get key1 value:".$val."
";

//保存数组数据

$arr = array('aa','bb','cc');

$mem->set('key2',$arr,0,60);

$val2 = $mem->get('key2');

echo "Get key2 value:";

echo "

";

print_r($val2);

echo "

";

//关闭连接

$mem->close();

?>

另外,PHP作为memcached客户端实现起来很简单,在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担。通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key。

下边是一个利用 memcached 来缓存数据库查询结果集的示例:

$mc = new memcached();

$sql = 'SELECT * FROM users';

$key = md5($sql);   //memcached 对象标识符

if ( !($datas = $mc->get($key)) ) {

// 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。

echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";

$conn = mysql_connect('localhost', 'test', 'test');

mysql_select_db('test');

$result = mysql_query($sql);

while ($row = mysql_fetch_object($result))

$datas[] = $row;

// 将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。

$mc->add($key, $datas);

} else {

echo "n".str_pad('Read datas from memcached.', 60, '_')."n";

}

var_dump($datas);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值