`
duanjiangong
  • 浏览: 62867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL触发器自动更新memcache

阅读更多

今天看了MYSQL官方网站,发现这个UDFs,UDFs 是 User Defined Functions 的缩写,指 Mysql 的用户定义函数,应用可以通过使用这些函数从 Mysql5.0 以上版本的数据库中访问 Memcached 写入或者获得数据。此外,从 Mysql5.1 开始支持触发器,这样就可以在触发器中使用 UDFs 直接更新 Memcached 的内容,减轻了应用程序设计和编写的复杂性。下面我们简要介绍 UDFs 的安装和使用:
  1、安装Libmemcached(memcached的客户端C API)
  下载地址:http://download.tangent.org/
       # ./configure –prefix=/usr  && make && make install
       注意:请安装在/usr下,不然后面安装memcached_functions_mysql的时候找不到,还要指定PKG_CONFIG_PATH,麻烦。

  2、安装memcached_functions_mysql
  下载地址:http://download.tangent.org/

  # ./configure –with-mysql=/usr/local/mysql/bin/mysql_config
      安装完成之后,需要将 libmemcached_functions_mysql 的库文件拷贝到 mysql/lib 目录下的 plugin 目录中。
  # cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/plugin/.
      # shell> mysql <sql/install_functions.sql

    3、触发器实现
  定义memcached服务器
  mysql> SELECT memc_servers_set(’192.168.0.1:11211,192.168.0.2:11211′);
  创建测试表:
  mysql> create table test3 (
     -> id int(3) not null,
        -> name varchar(64) not null default ”,
        -> primary key (id)
        -> );
    创建触发器
  mysql>DELIMITER |
      ->CREATE TRIGGER test3_insert
      ->BEFORE INSERT ON test3
      ->FOR EACH ROW BEGIN
      ->SET @mm = memc_set(concat(’id:’,NEW.id), NEW.name);
      ->END |

  可以参见官方网站:http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-mysqludf.html

后 记:我觉得它的应用场景应该是写操作不太频繁,但查询量非常大的网站,memcache不超时的缓存数据库的数据,当数据库发生更改的时候,利用 mysql的insert,update,delete触发器来更改memcached服务器的数据。但mysql的操作数据类型不支持数 组,memc_set应该也不支持对象或者数组等数据类型。实现起来有点难度。
续记:MYSQL UDF OF JSON
  基于以上的 试用感想,我认为应该有UDF可以将数据行转成json格式的数据,这样就真的可以实现前端不用访问数据库的想法了,GOOGLE真是个好东 西,google后还真找到了:UDF Repository for MySQL,外国人真是有开源精神:),这是一个MYSQL UDF库的网站,我在里面找到for json的udf。

下载地址:http://www.mysqludf.org/lib_mysqludf_json/lib_mysqludf_json_0.0.2.tar.gz
安装:
# mkdir udf_of_json
# cd udf_of_json
# wget http://www.mysqludf.org/lib_mysqludf_json/lib_mysqludf_json_0.0.2.tar.gz
# tar zxvf lib_mysqludf_json_0.0.2.tar.gz
# cp ./lib_mysqludf_json.so /usr/local/mysql/lib/plugin/.
# mysql -u root
mysql> source ./ lib_mysqludf_json.sql

测试:
DELIMITER ||
CREATE TRIGGER user_insert
AFTER INSERT ON users
FOR EACH ROW BEGIN
SELECT json_array(username,user_type,real_name,password,active,last_login,description) into @user_info FROM users where user_id=NEW.user_id;
SET @mm= memc_set(concat(’user_info_’,NEW.user_id), @user_info);
END ||

它还支持中文真是让人很欣喜,但不支持多行集,如果我用存储过程或者自定义函数自己写一个呢。研究中。。。。

分享到:
评论

相关推荐

    用mysql触发器自动更新memcache的实现代码

    本文将详细讲解如何利用MySQL触发器自动更新Memcache中的数据,以及具体的实现步骤。 首先,MySQL触发器是在满足特定条件时自动执行的数据库操作。在MySQL 5.1及以上版本中,引入了触发器功能,允许用户定义在插入...

    distributeTemplate 可以进行所有mysql mongodb file rab分布式上的SQL语法进行 增删改查

    它允许开发者执行SQL操作,包括增、删、改、查(CRUD),不仅限于单一的数据库系统,而是扩展到多种数据库环境,如MySQL、MongoDB、File、RabbitMQ、Redis、Memcache以及Hadoop。这个工具的出现极大地简化了在分布式...

    数据库教程PDF

    学习MySQL,你需要理解SQL语言,包括创建数据库和表,插入、更新和删除数据,以及执行查询。此外,还要熟悉事务处理、存储过程、视图、触发器等高级特性。 Redis则是一款高性能的键值对存储系统,常用于缓存和消息...

    cnetos7安装zabbix4.0

    mysql php-pecl-apc php-pear-Date php-memcache php-xmlrpc libc-client libc-client-devel libmcrypt-devel libmcrypt` 3. **安装 MySQL**:MySQL 将被用作 Zabbix 的数据库。 - 更改 MySQL 社区版本或直接安装...

    云计算IT基础设施与自动化运维—美团应用监控与分析实战—洪 丹

    4. 数据库层面:对MySQL等SQL数据库和各种NOSQL数据库(如Redis、Memcache、Tair、HBase)进行性能监控,包括qps、响应时间、吞吐量、错误率等。 5. 服务化层:包括thrift服务、数据库连接池的监控。 6. 消息队列:...

    acl C++跨平台库.rar

    通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、...

    Template OS Windows by Zabbix agent

    描述中的信息简洁,没有提供额外的具体细节,但我们可以推测这个模板包含了针对Windows操作系统的关键监控项和触发器,以便于管理员可以有效地监测和管理他们的Windows环境。 从标签 "TemplateOSWind" 可以看出,这...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 ...

    (全)传智播客PHP就业班视频完整课程

    10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 ...

    史上最全传智播客PHP就业班视频课,8月份视频

    10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 ...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 ...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    10-15 1 zendframe手动部署 自动部署 10-15 2 zendframe架构讲解 10-15 3 view layout布局 10-15 4 view helper视图助手 10-15 5 遗留问题解决 10-15 6 zf重新部署 10-15 7 zf controller讲解 10-16 1 model讲解 ...

    php就业班课程体系

    - 触发器、存储过程、视图等高级功能。 - 数据库性能优化技巧。 3. **PHP**: - PHP安装配置与环境搭建。 - 变量、数据类型、运算符等基础知识。 - 控制结构(条件判断、循环等)。 - 函数的定义与使用。 - ...

    腾讯PHP开发工程师笔试试卷

    预查询(`prepare()`、`execute()`),事务(`BEGIN`、`COMMIT`、`ROLLBACK`),存储过程,触发器,视图各有用途。 8. 数据表类型: 包括InnoDB、MyISAM等,InnoDB支持事务,MyISAM速度快但不支持。 9. 字段类型...

    php笔试题 百度

    - **MySQL5** 相对于4系列,增加了存储过程、触发器等功能。 **5. MySQL数据库基本的三个优化法则** - **服务配置**: 调整内存、缓存设置。 - **应用**: 使用索引、减少连接次数。 - **开发**: 优化SQL语句、减少...

Global site tag (gtag.js) - Google Analytics