简介
通过pipe将MySQL数据批量导入Redis,自Redis 2.6以上版本起,Redis支持快速大批量导入数据,即官网的Redis Mass Insertion,即Pipe传输,
现在的业务场景是将mysql中某张表的所有数据传输到redis中存储起来。
大致思路是用MySql的concat()方法将查询出来的数据按照resp协议的格式拼接成redis命令集合,再通过redis-cli --pipe批量执行命令
redis存储设计
假设数据库为test,表结构如下:
create database if not exists `test`;
use `test`;
CREATE TABLE `person` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`age` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
考虑用hash来对mysql数据库的数据进行存储,每条数据库记录对应一条hash存储,表名+主键值为key值,列名为field值,value为对应的列值
这里使用的是HMSET命令,格式如下:
HMSET ‘person:id值’ field1 "Hello" field2 "World" 至于这个命令的re