c++实现多窗口同步移动_redis+mysql数据同步(协同)C/C++实现

关于redis+mysql协同:

数据量巨大的情况下,频繁的操作数据库(这里值mysql),可能会造成击穿。而分布式缓存技术已经很成熟。

使用Nosql做缓存,然后异步的写入数据库,从而减小mysql甚至服务器的压力。

关于redis+mysql应用:

微博当然是最大的redis集群了:

总结了基本流程:

1. 发微博– > 进入消息队列– > 存入MySQL– > 复制到Redis

2. 查询 – > 查询缓存– > 查询Redis – > 查询MySQL

正文:

既然是两者之间交互,就分为两部分:

mysql to redis

redis to mysql

先看mysql to redis:

mysql to redis 采用的批量插入的方法。

通过对redis 以及 mysql具体数据库,数据表格式的分析,

利用 *.sql的脚本对数据进行选取,再重定向 到 redis中即可。

(使用到了 redis-cli –pipe的选项)

先看数据表:

86b3ed4e20843a0d0df5ac24ffd802ed.png
b2e6a500946ee974e50e08e84e86a6ff.png
4699c20d1105f23dfcb63127f0f6a0a4.png

对于每行数据中执行的 Redis命令如下:
HSET events_all_time [action] [count]

利用.sql脚本 执行

c203d5b17c31dc018c3d794a4fa8b214.png

关于 里面的 * $之类的,是redis数据备份的指定格式

举个例子:

135760ab300dd6230f366ea68d032851.png

格式说明如下:

*4 #表示有4个参数

$4 #表示“参数”有三个字节(“HSET”字符串为4个字节)

hset #执行的命令

$8 # key有 8个字节

wolys101 #key对应的值

$6 #field对应的长度

passwd #field对应的值

$12 # value的长度

wolysopen111 #value的值

# 一条语句结束

每行默认以 结尾

同时在执行玩一行后,以 代码一条语句结束

执行如下指令:

mysql -uroot -p redis –skip-column-names –raw < events_to_redis.sql | redis-cli –pipe -a ireanlau

-N, –skip-column-names //不显示列信息

-r, –raw //写列的值而不转义转换。

-a 是redis指定登陆密码的选项

a0387cf8da0826385097cff4192b83e8.png

操作成功;查看redis

a77fb345ecbc0b3103f592eb91a5aa7e.png

操作成功。

再谈redis to mysql
这里采用C/C++ api

82ff0eaf32fee34ddae2e631b9bd11be.png

先查看mysql对应数据表中的数据:

3ce6247bea3a9383544f053635a1d04c.png

redis当前没有键值对

4e21001bdd337fb08fd240129f907a12.png

为hash插入 3 个键值对

2e152dfa97f7d7e49d4af44ff74ca089.png

执行启动脚本:

b7599fa3946fb7e01c46fdbdf354904c.png

产看mysql:

86e8746a00c87a8ff20dea19dbeb4400.png

操作成功!

自动化功能的实现,计划采用crontab定时功能,定时对两个数据流进行刷入。

至此,所有功能阐述完毕。

注:需要C/C++ Linux服务器开发学习资料私信“资料”(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值