使用MySQL + Memcached进行Web已经是居家旅行之必备良药了。常规使用方式是依靠应用程序进行MySQL和Memcached之间的数据同步:首先从Memcached中读取,如果不存在则从MySQL中读取然后再写入到Memcached中。这种方式在中低流量访问压力下已经足够了,现在MySQL和Memcached的性能也是相当的不错。
这种方式的代价是应用程序自身必须自己来进行MySQL和Memcached之间的数据同步,当cache不存在时,client需要读MySQL,写cache,增加了逻辑复杂度和读取的响应时间。
使用MySQL的UDF功能,可以达到当MySQL的上的数据更新时,由MySQL把数据更新到Memcached上,如此client只需要读cache和读db就可以,不需要进行cache的写入操作。
UDF:User-Defined Function. 开发者可以对MySQL Server进行扩充,给MySQL Server增加自己特殊的功能。所有增加的功能都是通过一个简单的函数来实现。比如我们可以增加一个foo()方法,该方法输出“foo bar”的字符串。当把此方法增加到MySQL Server中后,该方法的使用方式就和MySQL Server内嵌的方法完全一样了。通过此种方式,我们能够完成我们想要的任意功能。
Memcached Functions for MySQL就是通过UDF方式可增加到MySQL Server中的一系列方法。如
1 2 3 4 |
memc_servers_set() memc_set(), memc_set_by_key() memc_get(), memc_get_by_key() memc_delete(), memc_delete_by_key() |
通过在触发器中使用这些方法,我们就可以实现当db的数据被更新时,让触发器调用这些方法,把数据同步更新到memcached中。
不过此种方式也有它的缺陷:它需要memcached一直处于可用的状态,当memcached宕机或者重启的时候,需要由额外的脚本对memcached进行数据的初始化。所以也并不是一个很理想的解决方式。
相关推荐
**描述分析:** "memcache与mysql结合必备" 表明Memcached Functions for MySQL是实现这两个技术协同工作的一个关键组件。Memcache是一个内存对象缓存系统,用于存储和检索数据,而MySQL则是一种关系型数据库管理...
Chapter 10: Memcached Functions for MySQL Chapter 11: Apache Chapter 12: Contact List Application Chapter 13: mod_perl Chapter 14: Using mod_perl Handlers Chapter 15: More mod_perl Chapter 16: ...
mysql 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤。 安装步骤 安装memcached,这个步骤很简单,...
- **Functions and Operators**:函数和运算符指南,列举了MySQL支持的各种内置函数和运算符。 - **Server Options/Variable Reference**:服务器选项和变量参考,提供了MySQL配置参数的详细列表。 - **Startup/...
3. **JSON支持**:MySQL 5.7开始支持JSON数据类型,使得NoSQL和SQL的结合更加便捷。 4. **窗口函数(Window Functions)**:允许在单个查询中进行复杂的行间计算,无需使用子查询或自连接。 5. **分区表优化**:增强...
/etc/rc.d/init.d/functions . /etc/sysconfig/network [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/...
3.4 通过UDFs实现Memcached与MySQL的自动更新 3.4.1 UDFs使用简介 3.4.2 memcached_functions_mysql应用实例 3.4.3 对memcached_functions_mysql的简单功能进行测试 3.4.4 使用memcached_functions_mysql的...
MySQL 8.0.11版本带来了众多新特性和改进,极大地提升了数据库的性能、安全性以及易用性。以下是对这些特性的详细说明: 一、数据字典(Data Dictionary) MySQL 8.0.11引入了事务性的数据字典,将数据库对象信息...
5. `database.php`:数据库操作类,如连接、查询、插入和更新数据。 6. `search.php`:用户查询功能实现,可能包括线路、站点查询接口。 7. `functions.php`:通用函数库,包含可重用的函数。 8. `样式表`(如`style...
在许多PHP论坛系统中,"bbs"常被用作论坛根目录的名称,包含了论坛的核心文件,如index.php(首页入口文件)、config.php(配置文件)、functions.php(函数库)、styles(主题样式)和forums(板块)等。...
:db([$key='default',[$option=array()]]) 获取db实例Core::memcached([$key='default',[$servers=array(),[$options=array()]]]) 获取memcached实例项目函数库一些项目的全局函数位于/src/libs/functions/global....
8. **缓存机制**:为了提高性能,CI提供了文件、数据库和 Memcached/Redis等多种缓存驱动,可以有效减少不必要的数据库查询。 9. **表单验证**:CI的表单验证类可以帮助开发者轻松实现数据验证,防止用户提交非法或...
PHP支持多种数据库连接,如MySQL,使得它在构建信息管理系统中非常灵活和强大。 【文件名称列表】:由于提供的文件名称“132690749605348019”无法直接反映出文件内容,我们通常会期望在压缩包内看到如下类型的文件...
2. **数据操作**:SQL查询语句用于检索、插入、更新和删除数据。可能包括预处理语句,以防止SQL注入攻击。 3. **前端展示**:PHP模板系统,如Smarty,用于将后端数据渲染成HTML,展示给用户。也可能直接在PHP文件中...
ezContents通常是一个开源项目,允许开发者和网站管理员创建、管理和发布在线内容。通过研究这个源码,我们可以深入了解PHP在构建动态网站中的应用以及CMS系统的基本架构。 【描述】"基于PHP的ezContents源码.zip...