Home Database Mysql Tutorial 用mysql触发器自动更新memcache

用mysql触发器自动更新memcache

Jun 07, 2016 pm 03:03 PM
memcache mysql renew automatic trigger

mysql 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现 memcache 的自动更新。简单记录一下安装测试步骤。 安装步骤 安装memcached,这个步骤很简单,随处可见 安装mysql server 5.1RC,安装

mysql 5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤。

安装步骤

  • 安装memcached,这个步骤很简单,随处可见
  • 安装mysql server 5.1RC,安装办法也很大众,不废话了
  • 编译libmemcached,解压后安装即可
    <code><span>./</span><span>configure</span><span>;</span><span> make</span><span>;</span><span> make install</span></code>
    Copy after login
  • 编译Memcached Functions for MySQL,在http://download.tangent.org/找一个最新的版本下载就是,
    <code><span>.</span><span>/configure --with-mysql=/</span><span>usr</span><span>/</span><span>local</span><span>/</span><span>mysql</span><span>/</span><span>bin</span><span>/</span><span>mysql_config </span><span>--</span><span>libdir</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>mysql</span><span>/</span><span>lib</span><span>/</span><span>mysql</span><span>/</span><span>
    make
    make install</span></code>
    Copy after login
  • 接下来有两个办法让Memcached Functions for MySQL在mysql中生效
    • 在mysql的shell中执行memcached_functions_mysql源码目录下的sql/install_functions.sql,这会把memcache function作为UDF加入mysql
    • 运行memcached_functions_mysql源码目录下的utils/install.pl,这是一个perl脚本,作用同上一条

测试memcache function

以下测试脚本摘自memcached_functions_mysql的源码目录,有兴趣可以试试

<code><span>drop table </span><span>if</span><span> exists urls</span><span>;</span><span>
create table urls </span><span>(</span><span>
  id </span><span>int</span><span>(</span><span>3</span><span>)</span><span>not</span><span>null</span><span>,</span><span>
  url varchar</span><span>(</span><span>64</span><span>)</span><span>not</span><span>null</span><span>default</span><span>''</span><span>,</span><span>
  primary key </span><span>(</span><span>id</span><span>)</span><span>);</span><span>select</span><span> memc_servers_set</span><span>(</span><span>'localhost:11211'</span><span>);</span><span>select</span><span> memc_set</span><span>(</span><span>'urls:sequence'</span><span>,</span><span>0</span><span>);</span><span>

DELIMITER </span><span>|</span><span>

DROP TRIGGER IF EXISTS url_mem_insert</span><span>;</span><span>
CREATE TRIGGER url_mem_insert
BEFORE INSERT ON urls
FOR EACH ROW </span><span>BEGIN</span><span>
    SET NEW</span><span>.</span><span>id</span><span>=</span><span> memc_increment</span><span>(</span><span>'urls:sequence'</span><span>);</span><span>
    SET </span><span>@mm</span><span>=</span><span> memc_set</span><span>(</span><span>concat</span><span>(</span><span>'urls:'</span><span>,</span><span>NEW</span><span>.</span><span>id</span><span>),</span><span> NEW</span><span>.</span><span>url</span><span>);</span><span>END</span><span>|</span><span>

DELIMITER </span><span>;</span><span>

insert </span><span>into</span><span> urls </span><span>(</span><span>url</span><span>)</span><span> values </span><span>(</span><span>'http://google.com'</span><span>);</span><span>
insert </span><span>into</span><span> urls </span><span>(</span><span>url</span><span>)</span><span> values </span><span>(</span><span>'http://www.ooso.net/index.php'</span><span>);</span><span>
insert </span><span>into</span><span> urls </span><span>(</span><span>url</span><span>)</span><span> values </span><span>(</span><span>'http://www.ooso.net/'</span><span>);</span><span>
insert </span><span>into</span><span> urls </span><span>(</span><span>url</span><span>)</span><span> values </span><span>(</span><span>'http://slashdot.org'</span><span>);</span><span>
insert </span><span>into</span><span> urls </span><span>(</span><span>url</span><span>)</span><span> values </span><span>(</span><span>'http://mysql.com'</span><span>);</span><span>select</span><span>*</span><span>from</span><span> urls</span><span>;</span><span>select</span><span> memc_get</span><span>(</span><span>'urls:1'</span><span>);</span><span>select</span><span> memc_get</span><span>(</span><span>'urls:2'</span><span>);</span><span>select</span><span> memc_get</span><span>(</span><span>'urls:3'</span><span>);</span><span>select</span><span> memc_get</span><span>(</span><span>'urls:4'</span><span>);</span><span>select</span><span> memc_get</span><span>(</span><span>'urls:5'</span><span>);</span></code>
Copy after login

作者: Volcano 发表于July 9, 2008 at 2:41 pm

版权信息: 和作者信息及此声明

永久链接 - http://www.ooso.net/archives/436


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: The Ease of Data Management for Beginners MySQL: The Ease of Data Management for Beginners Apr 09, 2025 am 12:07 AM

MySQL is suitable for beginners because it is simple to install, powerful and easy to manage data. 1. Simple installation and configuration, suitable for a variety of operating systems. 2. Support basic operations such as creating databases and tables, inserting, querying, updating and deleting data. 3. Provide advanced functions such as JOIN operations and subqueries. 4. Performance can be improved through indexing, query optimization and table partitioning. 5. Support backup, recovery and security measures to ensure data security and consistency.

Can I retrieve the database password in Navicat? Can I retrieve the database password in Navicat? Apr 08, 2025 pm 09:51 PM

Navicat itself does not store the database password, and can only retrieve the encrypted password. Solution: 1. Check the password manager; 2. Check Navicat's "Remember Password" function; 3. Reset the database password; 4. Contact the database administrator.

How to create navicat premium How to create navicat premium Apr 09, 2025 am 07:09 AM

Create a database using Navicat Premium: Connect to the database server and enter the connection parameters. Right-click on the server and select Create Database. Enter the name of the new database and the specified character set and collation. Connect to the new database and create the table in the Object Browser. Right-click on the table and select Insert Data to insert the data.

How to copy tables in mysql How to copy tables in mysql Apr 08, 2025 pm 07:24 PM

Copying a table in MySQL requires creating new tables, inserting data, setting foreign keys, copying indexes, triggers, stored procedures, and functions. The specific steps include: creating a new table with the same structure. Insert data from the original table into a new table. Set the same foreign key constraint (if the original table has one). Create the same index. Create the same trigger (if the original table has one). Create the same stored procedure or function (if the original table is used).

How to view database password in Navicat for MariaDB? How to view database password in Navicat for MariaDB? Apr 08, 2025 pm 09:18 PM

Navicat for MariaDB cannot view the database password directly because the password is stored in encrypted form. To ensure the database security, there are three ways to reset your password: reset your password through Navicat and set a complex password. View the configuration file (not recommended, high risk). Use system command line tools (not recommended, you need to be proficient in command line tools).

How to view mysql How to view mysql Apr 08, 2025 pm 07:21 PM

View the MySQL database with the following command: Connect to the server: mysql -u Username -p Password Run SHOW DATABASES; Command to get all existing databases Select database: USE database name; View table: SHOW TABLES; View table structure: DESCRIBE table name; View data: SELECT * FROM table name;

How to copy and paste mysql How to copy and paste mysql Apr 08, 2025 pm 07:18 PM

Copy and paste in MySQL includes the following steps: select the data, copy with Ctrl C (Windows) or Cmd C (Mac); right-click at the target location, select Paste or use Ctrl V (Windows) or Cmd V (Mac); the copied data is inserted into the target location, or replace existing data (depending on whether the data already exists at the target location).

How to execute sql in navicat How to execute sql in navicat Apr 08, 2025 pm 11:42 PM

Steps to perform SQL in Navicat: Connect to the database. Create a SQL Editor window. Write SQL queries or scripts. Click the Run button to execute a query or script. View the results (if the query is executed).

See all articles