浪人 发表于 2018-11-5 08:18:41

Redis-jeffrey13

tar zxf gearman-mysql-udf-0.6.tar.gz  
cd gearman-mysql-udf-0.6/
  
yum install -y gcc-c++
  
./configure --libdir=/usr/lib64/mysql/plugin/
  
make && make install
  
mysql
  
mysql> create function gman_do_background returns string soname'lib_mysqludf_json.so';
  
##注册UDF函数
  
mysql> create function gman_servers_set returns string soname'lib_mysqludf_json.so';
  
mysql> select * from mysql.func;
  
+--------------------+-----+-------------------------+----------+
  
| name               | ret | dl                      | type   |
  
+--------------------+-----+-------------------------+----------+
  
| json_object      |   0 | lib_mysqludf_json.so    | function |
  
| gman_do_background |   0 | libgearman_mysql_udf.so | function |
  
| gman_servers_set   |   0 | libgearman_mysql_udf.so | function |
  
+--------------------+-----+-------------------------+----------+
  
3 rows in set (0.00 sec)##查看注册的函数
  
mysql> select gman_servers_set('127.0.0.1:4730');##指定Gearman的服务信息
  
+------------------------------------+
  
| gman_servers_set('127.0.0.1:4730') |
  
+------------------------------------+
  
| 127.0.0.1:4730                     |
  
+------------------------------------+
  
1 row in set (0.00 sec)
  
mysql> quit
  
Bye
  
vim /root/redis/test.sql
  
use test;
  
#CREATE TABLE `test` (`id` int(7) NOT NULL AUTO_INCREMENT, `name` char(8)
  
DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  
#INSERT INTO `test` VALUES (1,'test1'),(2,'test2'),(3,'test3'),(4,'test4'),(5,'test5'),(6,'test6'),(7,'test7'),(8,'test8'),(9,'test9');
  

  
DELIMITER $$##编写Mysql的触发器
  
CREATE TRIGGER datatoredis AFTER UPDATE ON test FOR EACH ROW BEGIN
  
    SET @RECV=gman_do_background('syncToRedis', json_object(NEW.id as `id`, NEW.name as `name`));
  
END$$
  
DELIMITER ;
  
mysql < test.sql##将检测数据库导入mysql
  
mysql
  
mysql> SHOW TRIGGERS FROM test;##查看触发器
  
+-------------+--------+-------+----------------------------------------------------------------------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  
| Trigger   | Event| Table | Statement                                                                                                      | Timing | Created | sql_mode | Definer      | character_set_client | collation_connection | Database Collation |
  
+-------------+--------+-------+----------------------------------------------------------------------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  
| datatoredis | UPDATE | test| BEGIN
  
    SET @RECV=gman_do_background('syncToRedis', json_object(NEW.id as `id`, NEW.name as `name`));
  
END | AFTER| NULL    |          | root@localhost | latin1               | latin1_swedish_ci    | latin1_swedish_ci|
  
+-------------+--------+-------+----------------------------------------------------------------------------------------------------------------+--------+---------+----------+----------------+----------------------+----------------------+--------------------+
  
1 row in set (0.00 sec)


页: [1]
查看完整版本: Redis-jeffrey13