MySQL觸發器自動更新memcache

2021-05-22 05:40:59 字數 2091 閱讀 7624

# ./configure –prefix=/usr  && make && make install

注意:請安裝在/usr下,不然後面安裝memcached_functions_mysql的時候找不到,還要指定pkg_config_path,麻煩。

# ./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 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-inte***ces-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。

安裝:# mkdir udf_of_json

測試: 

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 觸發器 更新前

create trigger update before video info before update on video info for each row begin insert into video info update action name,id,name,alias name,ep...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

oracle觸發器使用實現自動更新「操作日期」字段

新增字段需求如下 頁面展示資訊功能,其中後續新增字段,其中有 操作日期 但頁面不顯示,為了後台檢視吧,如果只是sysdate當前時間,只會是該條記錄插入時會有日期,但是後續的update操作該欄位日期不會改變,此時oracle中用觸發器實現該功能實現。資料庫中欄位如下 datelastupdated...