今天看了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 ||

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

转载于:https://www.cnblogs.com/sharmy/archive/2009/02/23/1396545.html

MySQL触发器自动更新memcache[转]相关推荐

  1. oracle通过触发器自动更新表的修改时间

    Oracle通过触发器自动更新表的修改时间 在mysql里,我们通常在创建表时会设置一个创建时间(create_time)和一个修改时间(update_time),然后给创建时间设置默认值CURREN ...

  2. memcache如何更新mysql_使用MySQL触发器如何实现memcache自动更新

    MySQL 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新.简单 ...

  3. mysql timestamp 更新_[mysql] timestamp自动更新和初始化

    1.概述 在我们设计表的时候,考虑将行数据的创建时间和最后更新时间记录下来是很好的实践.尤其是可能需要做数据同步或者对数据新鲜度有要求的表.举些应用场景,更新距上次更新超过2小时的行数据,或者是将一个 ...

  4. mysql timestamp 自动更新_mysql timestamp自动更新

    最近遇到timestamp的自动更新时间问题,记录如下: 先看mysql官方手册(翻译稿): 在CREATE TABLE语句中,可以用下面的任何一种方式声明第1个TIMESTAMP列: 1.用DEFA ...

  5. MYSQL触发器自动生成主键UUID

    MYSQL导入数据时,通过触发器自动生成UUID beginif new.id is null THEN set new.id = (replace(uuid(),"-",&quo ...

  6. UDFs实现Memcached与Mysql的自动更新

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装wget https://launchpad.net/libmemcached/1.0/0.34/+download/ ...

  7. mysql库存自动更新_秒杀库存需不需要实时更新到mysql?

    秒杀系统, 小库存场景,瞬间抢购完成的case,譬如iphone 11 上亿人抢一个,可通过使用事务 的悲观锁的实现(为了降低并发冲突,可对于事务内要读取且后续要基于此做更新的select语句 + f ...

  8. mysql入库出库触发器_入库出库后库存自动更新的SQL触发器语句是什么?

    tb1(产品表)cpidcpnamecpcolorkucun1xxxxxx82xxxxxx7=================================tb2(入库表)riqirukucpid2 ...

  9. [数据库] Navicat for MySQL触发器更新和插入操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  10. mysql触发器 当记录的指定字段发生变化时,更新表中的另外一个字段,或者更新另外一张关联表中关联记录的字段...

    2019独角兽企业重金招聘Python工程师标准>>> 注意:语句中出现的old,new,now(),都为数据库自带的关键字,此处不做解释. 两种情况: 第一种:一张表中,更新某条记 ...

最新文章

  1. 什么是爱?什么是幸福?
  2. 神策数据薛创宇:数据分析与场景实践之“坑位运营”
  3. 倒计时或按任意键返回首页_超实用excel小技巧之时间倒计时及动态显示
  4. java中的集合_你真的了解Java中的集合类么?
  5. apache+tomcat小记
  6. spring boot demo(spring jdbc访问数据)
  7. #425[div2]
  8. python程序实例 100-python办公实例100例
  9. python能刷网课吗_利用Python脚本实现自动刷网课
  10. Android ndk下载和环境配置
  11. httpflv 格式分析
  12. 计算机网络练习题-1
  13. 街头篮球服务器位置,求街头篮球各个服务器IP地址
  14. 深度信念网络_静园5号院前沿讲座 | Geoffery Hinton谈深度信念网络
  15. 分布式服务架构-第三章 服务化系统容量评估和性能保障
  16. openssl1.1.1下载地址
  17. 1.动态规划--01背包问题
  18. 计算机音乐说散就散,说散就散(精彩音乐汇)
  19. PHPStorm 代码格式化
  20. 30天30队:2013-14季,俄克拉荷马州雷霆

热门文章

  1. iOS xcode The certificate used to sign Administrator has either expired or has been revoked. An u
  2. CentOS 7服务
  3. int 占一个机器字长
  4. C#串口编程测试收发
  5. Pandas循环提速 7 万多倍是怎么实现的?
  6. 动态生成实物文件思路
  7. 【缩点】洛谷P3387
  8. for循环与foreach的性能比较
  9. libc.so.6: version 'GLIBC_2.14' not found报错提示的解决方案
  10. 洛谷 P1881 绳子对折