mysql,redis之间数据同步

参考: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,这里只做简单的测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值