惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
V
V2EX - 技术
S
Secure Thoughts
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
S
Securelist
S
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
GRAHAM CLULEY
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
Intezer
Google Online Security Blog
Google Online Security Blog
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Webroot Blog
Webroot Blog
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
The Cloudflare Blog
I
InfoQ
L
LangChain Blog
U
Unit 42
P
Proofpoint News Feed
S
Schneier on Security
S
Security Affairs
Y
Y Combinator Blog
T
Tenable Blog
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
量子位
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
GbyAI
GbyAI
AWS News Blog
AWS News Blog

博客园 - sharmy

[转]快速理解数据库中的索引(Indexes in Database) mysql数据库中的索引与优化、理解与用途 MySQL锁机制 经典mysql 语句收录 mysql查找执行效率慢的SQL语句 Lighttpd 编写lighttpd插件 Lighttpd 配置与性能优化 Apache SSL Module 介绍,原理及安装 ulimit 修改常见服务器的banner mysql M/S配置小记 用css sprites(图像拼合技术)优化css加快网站速度[转] php效率高写法 memcache在大型网站的应用策略【转】 开发大型高负载类网站应用的几个要点[转] asp.net性能常用优化 转 缓存理解 转 如何利用客户端缓存对网站进行优化?
MySQL触发器自动更新memcache[转]
sharmy · 2009-02-23 · via 博客园 - sharmy

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

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