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

简单脚本:把MYSQL数据导入REDIS

2017-02-13 17:53 316 查看
把MySQL数据导入Redis,只需要简单的三点。

第一点: 理解Redis的协议格式。

Redis的协议为:  参数个数  +   参数长度  +   参数  。如果参数多余一个,则重复前面的(参数长度  +   参数)。

举个例子:

*3

$4

SADD

$8

all_user

$5

admin

*3

$4

SADD

$8

all_user

$7

auditor

上面的命令,其实是两条命令。第一条命令写在一行字符串内是:*3 (参数个数) + $4 (第一个参数长度)+ HSET (第一个参数) + $8 (第二个参数长度) + all_user (第二个参数) + $5 (第三个参数长度) + admin (第三个参数) 。

第二点: 理解Redis的命令,比如上面例子中用到的Redis set的命令是: SADD key member [member ...]

第三点: 把Mysql的数据select出来,并组成一个字符串给redis。这就用到了SELECT和CONCAT。同样使用上面的例子,把下面的命令写入SQL文件,就可以拼出来需要的字符串了。

select concat( "*3\r\n", '$', LENGTH(redis_cmd), '\r\n',

redis_cmd, '\r\n',

'$', LENGTH(redis_key), '\r\n',

redis_key, '\r\n',

'$', LENGTH(sval), '\r\n',

sval, '\r'

)

FROM (

select 'SADD' as redis_cmd,

'all_clients' as redis_key,

mac as sval

from client_info

) as tmp

理解了上面的三点后,就可以根据自己的需要,导入数据到redis了。最后,执行下面的命令,就可以完成导入了。

mysql -umysql -p'mysql' MYDB --skip-column-names --raw </tmp/test.sql | redis-cli --pipe
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql redis 脚本