参考:https://blog.csdn.net/larry_zeng1/article/details/78850910 linux下的.sql带有\r
https://blog.csdn.net/ali_lili/article/details/93893604 windows下的sql需要把\r去掉
mysql to redis
mysql表的测试数据
mysql2redis.sql语句
SELECT CONCAT(
"*4\n",
'$',LENGTH(redis_cmd),'\n',
redis_cmd,'\n',
'$',LENGTH(redis_key),'\n',
redis_key,'\n',
'$',LENGTH(hkey),'\n',
hkey,'\n',
'$',LENGTH(hval),'\n',
hval
)
FROM(
SELECT
'HSET' as redis_cmd,
'userinfo' as redis_key,
uid as hkey,
name as hval
FROM userinfo
) AS t;
执行之后的结果
他结果大致内容如下
*4
$4
HSET
$8
userinfo
$5
10000
$3
ztq
格式说明如下:
*4 #表示有4个参数
$4 #表示“参数”有三个字节(“HSET”字符串为4个字节)
HSET #执行的命令
$8 #key(接hash表名)有 8个字节长度
userinfo #即hash表名
$5 #field对应的长度
10000 #field对应的值
$3 #value的长度
ztq #value的值
组合在一起其实就是一条redis插入数据到HASH的命令:
HSET userinfo 10000 ztq
由于有多条数据,相当于执行了多次如上的redis命令,最终将所有mysql的数据存入redis缓存
进入到redis的目录下,将上面的.sql文件放入到该目录下
管理员在当前目录下运行cmd,输入如下语句:
mysql -uroot -p111111 ztq --default-character-set=utf8 --skip-column-names --raw < mysql2redis.sql | redis-cli --pipe
reids数据库正常设置数据
redis to mysql
redis 封装的源码和main.cpp中对hash数据存入mysql的测试:https://github.com/TQ5911/C-_Redis
到时候可以在RedisHandler.h中对不同结构的数据封装各自的函数用来将redis数据存入mysql,这里只做简单的测试