mysql to redis_MySQL to Redis

本文介绍了如何通过mysql2redis工具便捷地将MySQL数据导出到Redis,涉及软件安装、apr+hiredis配置、mysql插件注册及使用示例。重点在于解决安装过程中可能遇到的权限问题,并演示了如何设置Redis服务器地址和迁移数据的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

使用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"

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值