最近在做一些MySQL + Redis结合的工作,其中涉及到了MySQL的数据迁移到Redis的东西,小记一下。
首先,截止2016.11.21,我在Windows环境下都无法用Redis-cli.exe利用pipeline批量插入数据。原因大概是因为字符串等各种格式的问题,同样的命令在Ubuntu的终端下运行良好。Redis版本是Windows开源团队的Redis-x64-3.2.100。地址是MSOpenTech\Redis。
Redis 在Windows中的服务端是可以变为Windows服务自启动的,具体命令如下:
redis-server --service-install redis.windows.conf
安装完之后不会自启动,但是可以调用下面命令来进行启动。
redis-server --service-start
导入初期我是直接写了个工具,遍历了MySQL中的所有数据然后插入Redis的,我选择了直接用C#写一个控制台程序,选用的客户端是StackExchange.Redis,然后利用各类的Async进行异步操作(实际上就是使用pipeline),速度还是比较可以的。
后面发布的时候找了一下,Redis本身的客户端可以也利用pipeline来进行批量插入(Mass Insertiong),官方文档(Redis Mass Insertion
h)[http://redis.io/topics/mass-insert],然后结合pipeline,就可以利用脚本将MySQL中的数据转换为Redis-cli可以识别的格式,直接批量插入即可。
在文中,作者给出了示例,用如下的格式进行格式化输入即可:
*<args><cr><lf>
$<len><cr><lf>
<arg0><cr><lf>
<