您的位置:首页 > 数据库 > Redis

mysql2redis

2016-03-16 10:38 1016 查看

mysql2redis这个项目主要解决mysql数据跟redis数据同步的问题

目前在测试环境研究这方面的应用,以下是git上面的介绍

git入口git安装入口

Dependencies

pleasedownloadthedependenciesbelowandcompile/installitproperly:

apr-1.4.6(http://apr.apache.org/download.cgi)

apr-util-1.5.2(http://apr.apache.org/download.cgi)

hiredis(https://github.com/redis/hiredis)

lib_mysqludf_json(https://github.com/mysqludf/lib_mysqludf_json)

createfunctionlib_mysqludf_json_inforeturnsstringsoname'lib_mysqludf_json.so';
createfunctionjson_arrayreturnsstringsoname'lib_mysqludf_json.so';
createfunctionjson_membersreturnsstringsoname'lib_mysqludf_json.so';
createfunctionjson_objectreturnsstringsoname'lib_mysqludf_json.so';
createfunctionjson_valuesreturnsstringsoname'lib_mysqludf_json.so';

Compile

runmakefromthesrcdirdirectly.

make

Installredisudf

pleasemakesurethatthelib_mysqludf_redis_v2.sohasbeenputintothemysqlplugindir.Bytheway,youcanexaminewhereisthemysqlplugindirbyrun'''mysql_config--plugindir'''.andthenconnecttoyourmysqlserver,runthefollowingcommandtoinstallthetheredisudf.

DROPFUNCTIONIFEXISTSredis_servers_set_v2;
DROPFUNCTIONIFEXISTSredis_command_v2;
DROPFUNCTIONIFEXISTSfree_resources;

CREATEFUNCTIONredis_servers_set_v2RETURNSintSONAME"lib_mysqludf_redis_v2.so";
CREATEFUNCTIONredis_command_v2RETURNSintSONAME"lib_mysqludf_redis_v2.so";
CREATEFUNCTIONfree_resourcesRETURNSintSONAME"lib_mysqludf_redis_v2.so";


Testredisudf

connecttoyourmysqlserver,runthefollowingcommandtotestthetheredisudf.

selectredis_command_v2("lpush","crmInboxEvents11",json_object(json_members("op","insert","value","valuettt")));

selectredis_servers_set_v2("192.168.0.118",6379);
selectredis_command_v2("lpush","crmInboxEvents11",json_object(json_members("op","insert","value","valuettt")));

selectredis_command_v2("hset","hkey","hfield",json_object(json_members("op","insert","value","valuettt")));

selectfree_resources();
selectredis_servers_set_v2("192.168.0.118",6379);


What'smore

youshouldcreateatriggerwhichwilllpushthenewlymodifieddatatoredislistjusteasthefollowingexample:

DELIMITER$$
CREATETRIGGERinsert_triggerAFTERINSERTONemail_folder
FOREACHROWBEGIN
SET@ret=
redis_command_v2("lpush","crmInboxEvents",
json_object
(
json_members
(
"op",
"insert",
"value",
json_object
(
NEW.Idas"id",NEW.typeas"type",
NEW.mailserver_idas"mailserverId",NEW.senderas"sender",
NEW.sender_nameas"senderName",NEW.recevieras"recevier",
NEW.replytoas"replyto",NEW.bbemailsas"bbemails",
NEW.ccemailsas"ccemails",NEW.subjectas"subject"
)
)
)
);
END$$
DELIMITER;

安装链接

1.先装着gi工具

gitclonehttps://github.com/jackeylu/mysql2redis.git
2.下载mysql2redis

gitclonehttp://github.com/redis/hiredis
3.下载hiredis

gitclone'target='_blank'>http://github.com/redis/hiredis[/code]4.安装hiredis

cdhiredis make&&makeinstall
5.安装mysql2redis

5.1.cp/usr/local/mysql/bin/mysql_config/usr/bin/

解决方案:修改src/lib_mysqludf_redis.c下面的285行,将ld修改成lld。

ERROR1126(HY000)atline20:Can'topensharedlibrary'lib_mysqludf_redis.so'(errno:0libhiredis.so.0.10:cannotopensharedobjectfile:Nosuchfileordirectory)

解决方案:运行

sudo/sbin/ldconfig


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: