首页 > MySQL > Memcached and MySQL

Memcached and MySQL

  相信很多开发人员接触过memcached,而且我认识的朋友当中有的是经常使用。那么在结合数据库,在对数据库内容做缓存的时候什么情况下使用memcached却不甚了解。有些朋友问到MySQL有自己的Query cache,为什么还要用memcached? –by ivan@mysqlab.net

  MySQL为了效率考虑,不太可能将数据粒度分那么细,所以在对表更新的时候将清空所有涉及到这张表的qcache,这样的话,在更新频繁或者表记录数很大的情况,qcache的效率将大打折扣。而使用memcached一般都是针对单挑记录,从而在更新的时候对表中其他记录的cache没有影响,相比qcache来说,cache效率极大提高。这也是为什么在MySQL有Query cache的情况下还要使用memcache来缓存数据。
  不过结合MySQL和memcached使用需要app层配合。不过当前也有MySQL memcached UDFs,结合MySQL触发器trigger,可是实现MySQL数据库的内容跟memcached同步,这样可以避免不同的应用程序需要实现对memcached的管理。

MySQL memcached UDFs的下载地址:https://launchpad.net/memcached-udfs

shell> tar zxf memcached_functions_mysql-x.xx.tar.gz
shell> cd memcached_functions_mysql-x.xx
shell> ./configure –with-mysql=/usr/local/mysql/bin/mysql_config

shell> make
shell> make install

shell> cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/mysql/plugins/

mysql> CREATE FUNCTION memc_get RETURNS STRING SONAME "libmemcached_functions_mysql.so";
mysql> source /path/TO/install_functions.sql
 

详情请参考:http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-mysqludf.html

Related posts:

  1. MySQL driver(驱动) liblbmysql for Go1
  2. MySQL vs NoSQL 效率与成本之争
  3. 发布自己的DbSession类(for php)
分类: MySQL 标签:
  1. seacoastboy
    2010年3月2日15:55 | #1

    如果使用 1.1 的话会出现错误的!
    servers.c: In function ‘memc_servers_set’:
    servers.c:122: error: ‘memcached_st’ has no member named ‘hosts’
    servers.c:123: error: ‘memcached_st’ has no member named ‘hosts’
    servers.c:124: error: ‘memcached_st’ has no member named ‘hosts’
    make[2]: *** [servers.lo] Error 1
    make[2]: Leaving directory `/usr/local/src/memcached_functions_mysql-1.1/src’
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/usr/local/src/memcached_functions_mysql-1.1/src’
    make: *** [all-recursive] Error 1

  2. 2010年3月18日17:26 | #2

    没用过 正在学习mysql过程 中

  1. 本文目前尚无任何 trackbacks 和 pingbacks.