redis+mysql数据同步(协同)CC++实现
说明:
本⽂只是对redis和mysql的数据迁徙做了简单介绍
关于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的选项)
固字组词先看数据表:
取游戏名
对于每⾏数据中执⾏的 Redis命令如下:
HSET events_all_time [action] [count]
食品安全卫生制度
利⽤.sql脚本 执⾏
关于 ⾥⾯的 * $之类的,是redis数据备份的指定格式
举个例⼦:
格式说明如下:
*4 #表⽰有4个参数
$4 #表⽰“参数”有三个字节(“HSET”字符串为4个字节) hset #执⾏的命令
$8 # key有 8个字节
wolys101 #key对应的值
$6 #field对应的长度
passwd #field对应的值
$12 # value的长度
wolysopen111 #value的值
# ⼀条语句结束
每⾏默认以 \r\n 结尾
个人兴趣爱好同时在执⾏玩⼀⾏后,以 \r\n 代码⼀条语句结束
太阳伞执⾏如下指令:
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指定登陆密码的选项
操作成功;查看redis
操作成功。
再谈redis to mysql
这⾥采⽤C/C++ api
连接redis和 mysql参见博客中相应的博⽂。加班工资的计算基数
先查看mysql对应数据表中的数据:
redis当前没有键值对
为hash插⼊ 3 个键值对
执⾏启动脚本:
产看mysql:
操作成功!
⾃动化功能的实现,计划采⽤crontab定时功能,定时对两个数据流进⾏刷⼊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论