mysql to redis_MySQL to Redis

简介

使用mysql2redis可以非常便捷的将mysql中的数据导出到redis中去, 通常是需要一个select语句即可实现。

软件安装

// 安装apr + apr-util

$ wget http://mirror.bit.edu.cn/apache//apr/apr-1.5.1.tar.gz

$ tar zxvf apr-1.5.1.tar.gz

$ ./configure --prefix=/usr/local/apr

$ make

$ make install

$ wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

$ cd apr-util-1.5.4

$ ./configure --with-apr=/usr/local/apr

$ make

$ make install

// 安装hiredis, redis的C语言client

$ git clone https://github.com/redis/hiredis

$ cd hiredis

$ make

$ make install

$ git clone https://github.com/dawnbreaks/mysql2redis.git

$ cd mysql2redis

$ make

$ cp lib_mysqludf_redis_v2.so /usr/lib64/mysql/plugin/

注册mysql2redis UDF

CREATE FUNCTION redis_servers_set_v2 RETURNS int SONAME "lib_mysqludf_redis_v2.so";

CREATE FUNCTION redis_command_v2 RETURNS int SONAME "lib_mysqludf_redis_v2.so";

CREATE FUNCTION free_resources RETURNS int SONAME "lib_mysqludf_redis_v2.so";

如果出现以下异常信息,则关闭SELINUX

ERROR 1126 (HY000): Can't open shared library 'lib_mysqludf_redis_v2.so' (errno: 2 libhiredis.so.0.12: failed to map segment from shared object: Permission denied)

关闭selinux

// 临时关闭

$ setenforce 0

//永久关闭

cat /etc/selinux/config

SELINUX=disabled

测试

// mysql

// 设置redis服务器地址

mysql> select redis_servers_set_v2("127.0.0.1",6379);

mysql> select * from user_info;

+----+------------+------+-------------------+---------+

| id | NAME | age | email | addr |

+----+------------+------+-------------------+---------+

| 1 | Troy Zhang | 30 | java-koma@163.com | ChengDu |

+----+------------+------+-------------------+---------+

// 将user_info表的数据更新到redis中

mysql> select redis_command_v2("hmset", concat("user_info:", id), 'name', name, 'age', age, 'email', email, 'addr', addr) from user_info;

// redis

127.0.0.1:6379> keys *

1) "user_info:1"

127.0.0.1:6379> hgetall user_info:1

1) "name"

2) "Troy Zhang"

3) "age"

4) "\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

5) "email"

6) "java-koma@163.com"

7) "addr"

8) "ChengDu"

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值