memcached 学习

Memcached是高性能、分布式的内存对象缓存系统

Memcached的服务器提供一个存储结构,在这个结构中,数据按照键值来存储,而检索功能通过使用一个散列查找表来实现。

Memcached的客户端以并行的方式把请求发送到相应的服务器上,然后每台服务器使用自己的散列键查找表来检索存储条目,随后把结果发送回客户端,接着客户端将这些结果聚集在一起以供应用程序使用。

MemcachedCPU要求不太高

使用memcached的方式:

1.通读缓存

检索数据时,首先检查缓存,缓存中有数据,直接返回,没有数据,读数据库,将得到的数据存储到缓存中,然后将数据返回给用户,所以一个读取操作不仅获取数据,而且确保后续读取操作能够在缓存中找到所需数据。

2.连续写入缓存

将数据写入缓存,然后另一个不同进程把已存储的数据从memcached读取到数据库中。

Memcached的操作:

Set:根据给定的键为其设置值,而不管其是否存在,此外还可以设置这个值的到期时间。

Get:通过键值取值

Add:如果对象未存在,根据给定的键值添加一个值

Replace:如果对象存在,根据给定的键替换其值

Delete:删除一个根据给定键存储的值

Increment:把给定的键的值增加一个定量。可使用该选项作为一个序列,或主要的计数器

Decrement:把给定的键的值减少一个定量。可使用该选项作为一个序列,或主要的计数器

State:返回memcached服务器的统计信息

[@more@]Normal07.8 磅02falsefalsefalseEN-USZH-CNX-NONEMicrosoftInternetExplorer4

Libmemcached 是一个用c语言编写的memcached客户端库。

Libmemcached包含若干命令行工具,可以用来调试memcached群集以及评估它的性能。

memcat:把键的值复制到标准输出

memflush:清除服务器的内容

memrm:从服务器上删除一个键或者多个键

memcp:将文件复制到一台memcached服务器上

memstat:将服务器的状态信息转储到标准输出

memslap:在memcached群集上生成测试负载

例如:

#memcat –servers=localhost:22122,localhost:11211 somekey anotherkey

This is a value in memcached

123456789

其中somekey anotherkey是要查看键名

#memcat –servers=localhost:22122 somekey anotherkey

123456789

#memcat –servers=localhost:11211 somekey anotherkey

This is a value in memcached

发现两种情况都提取一个值,说明anotherkey通过运行在11211端口的memcached服务器获取的,somekey则是通过运行22122端口的memcached服务器获取的。

#memflush –-servers=localhost:22122,localhost:11211

#memcat –servers=localhost: 22122,localhost:11211

somekey anotherkey

#memcp –servers=localhost:11211 /etc/redhat-release

#memcat –servsers=locahost:11211 redhat-release

CentOS release 5.2 (Final)

#memstat –servers=localhost:11211

显示内容为memcached服务器的状态

#memrm –servers=localhost:11211 redhat-release

#memcat –servers=localhost:11211 redhat-release

#memslap –-help

clip_image001.gif

memcached functions for mysql

特点:这些函数都是由c语言编写的

安装:

#./configure

--with-mysql=/usr/local/mysql/bin/mysql_config

--libdir=/usr/local/mysql/lib/mysql/plugin

make

make install

--with-mysql告诉配置程序到何处去查找mysql_config程序

--libdir编译后的共享库的安装目录位置

另外,为了能够加载共享库,默认情况下,并不从库路径的目录中加载动态库,例如:

如果需要添加一个位于目录/usr/local/mysql/lib/mysql/plugin中的条目,就应该在/etc/ld.so.conf.d中添加一个mysql.conf文件,然后运行ldconfig来创建必须得连接并缓存到最近找到的共享库中

动态库安装完毕就需要安装UDF

方法两种

1Sql脚本安装

mysql –u root –p < sql/install_functions.sql

sql/install_functions.sql可以在源代码发行版本的sql目录中找到

2perl安装

./utils/install.pl –u root –p root –s

–s表示非交互方式的静默安装

安装了函数就可以在mysql命令行中操作了

各个函数的应用:

mysql> select * from mysql.func

mysql> select memc_get (‘abc’);

mysql> set @test=memc_get (‘abc’);

mysql> select @test;

memc_servers_set 函数创建一个与正在被使用的memcached服务器连接。

mysql> SELECT memc_servers_set (‘127.0.0.1:11211,127.0.0.1:22122’);

一旦连接,就可以开始使用所有其他函数来存储和检索值了

memc_server_count 函数不带任何参数,返回连接的memcached服务器的数量

mysql> SELECT memc_server_count ();

memc_set函数用来给键设值

mysql> SELECT memc_set (‘foo’, ‘xyz’, 5);存储键foo的值为xyz,到期时间为5

mysql> SELECT memc_set (‘foo’, ‘xyz’);

memc_set_by_key函数是memc_set函数的扩展,增加了主服务器键,允许用户将所存的值按照服务器进行分组

mysql> SELECT memc_set_by_key(‘A’,’key1’,’test’);

memc_add memc_add_by_key 函数为未设置的键设值,成功返回0,失败非零

memc_add (‘key’,value);

memc_add_by_key (‘master key’,‘key’,value,expiration);

memc_replace memc_ replace _by_key 函数为设置过的键改值,成功返回0,失败非零

memc_ replace (‘key’,value);

memc_ replace _by_key (‘master key’,‘key’,value,expiration);

memc_delete memc_ delete _by_key 删除以键存储的值,删除成功返回0,否则非零

memc_ delete (‘key’,value);

memc_ delete _by_key (‘master key’,‘key’,value,expiration);

memc_get memc_ get _by_key 取值

memc_ get (‘key’,value);

memc_ get _by_key (‘master key’,‘key’);

memc_ increment 增加一个增数值

memc_ increment (‘key’);执行一次该函数,key键值所对应的数值加1

memc_ increment (‘key’,value); 执行一次该函数,key键值所对应的数值加value

memc_decrement memc_ increment 功能相反

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23168012/viewspace-1052713/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23168012/viewspace-1052713/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值