㈠ Redis 与 MySQL 的耦合性

在业务架构早期、我们便该"吃着碗里的看着锅里的"、切莫让MySQL 有梦、而Redis 无心

毕竟、有些关系型的结构不适合放到Redis跑、"男女搭配、干活不累"嘛、推荐让MySQL与Redis喜结连理

其次、这 2 人、一般是在不同场景做选择、而不会在性能上选择、

只有在 2 者都可用的情况下、综合性能、硬件成本、运维成本等选择

比如、网页游戏启用 Redis+MySQL:

游戏中的:好友关系、排行榜、计数器、队列、cache都很适合通过 Redis来实现

再举个例子是新浪微博的架构、比如用户关注关系:

在 MySQL中是 <粉丝,关注的人>这样一行一行存储的。而在 Redis中你可以存成一个set,或者zset等

大体流程是由 MySQL 复制到 Redis 的

基本结构应该是:

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

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

㈡ 快速迁移 MySQL →→ Redis

① MySQL 要导出的表 david_lin

[plain]

mysql> desc david_lin;

+---------+-------------+------+-----+---------+-------+

| Field   | Type        | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| id      | int(11)     | NO   | PRI | NULL    |       |

| myname  | varchar(25) | NO   | UNI | NULL    |       |

| mymoney | int(11)     | NO   |     | 0       |       |

+---------+-------------+------+-----+---------+-------+

mysql> select * from david_lin;

+----+--------+---------+

| id | myname | mymoney |

+----+--------+---------+

|  1 | david  |  100000 |

|  2 | rocky  |  200000 |

+----+--------+---------+

② 编写导出脚本

每行数据中执行的 Redis命令如下:

HSET david_lin [myname] [mymoney]

[plain]

[root@odd ~]# cat mysql_to_redis.sql

SELECT CONCAT(

"*4\r\n",

'$', LENGTH(redis_cmd), '\r\n',

redis_cmd, '\r\n',

'$', LENGTH(redis_key), '\r\n',

redis_key, '\r\n',

'$', LENGTH(hkey), '\r\n',

hkey, '\r\n',

'$', LENGTH(hval), '\r\n',

hval, '\r'

)

FROM (

SELECT

'HSET' AS redis_cmd,

'david' AS redis_key,

myname AS hkey,

mymoney AS hval

FROM david_lin

) AS t

③ 开始导入

[plain]

[root@odd ~]# mysql -uroot -poracle test --skip-column-names --raw < mysql_to_redis.sql | redis-cli --pipe

All data transferred. Waiting for the last reply...

Last reply received from server.

errors: 0, replies: 0

④ 在Redis 里查询

[plain]

redis 127.0.0.1:6379> hgetall david

1) "david"

2) "100000"

3) "rocky"

4) "200000"

这里仅是个 demo、数据量小、不过、看这结果、有些类似行转列哈、列运算了、有木有 :)

By David Lin

2013-05-30

Good Lucky

转载于:https://blog.51cto.com/tianshili/1640038

浅谈Redis与MySQL的耦合性以及利用管道完成MySQL到Redis的高效迁移相关推荐

  1. 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移

    http://blog.csdn.net/dba_waterbin/article/details/8996872 ㈠ Redis 与 MySQL 的耦合性               在业务架构早期 ...

  2. 浅谈“高内聚,低耦合”

    浅谈"高内聚,低耦合" 高内聚,低耦合官方概念:在软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分模块的一个准则是高内聚低耦合.从模块粒度来看,高内聚:尽可能类的每个 ...

  3. amoeba实现mysql主从读写分离_利用Amoeba实现MySQL主从复制和读写分离

    在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性.高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(Master-Slave) ...

  4. MySQL通过接口导入hive_利用Sqoop将MySQL数据导入Hive中

    参考 http://www.cnblogs.com/iPeng0564/p/3215055.html http://www.tuicool.com/articles/j2yayyj http://bl ...

  5. 浅谈PROFINET IO通信的实时性

    PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准.作为一项战略性的技术创新,PROFINET为自动化通信 ...

  6. 浅谈高内聚与松耦合,各人自扫门前雪,莫管他人瓦上霜

    阅读本文时,请注意软件术语均在括号内用红色标注 高内聚与松耦合,通俗的说就是我国的一句古话:各人自扫门前雪,莫管他人瓦上霜. 我来解释一下,假设你是"面向对象"(面向对象oop)小 ...

  7. POJ 2983 浅谈差分约束系统处理严格等价性问题

    世界真的很大 差分约束系统,基于SPFA算法的复数不等关系判别及求值的系统 但是如果是完全等价的关系呢?或者说是混合式的等价关系? 当然是可以处理的,只不过需要恰恰转化一下,这个等价转不等算是差分约束 ...

  8. 浅谈ThinkPH5.0和5.1的反序列化利用链分析

    前言 本文将总结分析ThinkPHP5.0和5.1中的反序列化利用链,一方面以备不时之需,另一方面算是对php反序列化的深入学习. 其中TP5.0的利用链会复杂很多,所以本文会先介绍TP5.1的利用链 ...

  9. 浅谈PHP无回显命令执行的利用

    本文首发于先知社区 前言 在CTF题或在一些渗透测试中往往会遇到没有回显的命令执行漏洞,为了能更好的实现对无回显命令执行漏洞的利用,我对此进行了简单总结. 判断方法 命令执行可能会存在命令执行但没有回 ...

最新文章

  1. visual studio 汇编 创建 项目
  2. 附实例!图解React的生命周期及执行顺序
  3. 入坑emacs之配置文件 .emas.d/init.el -v1.0
  4. Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包
  5. pic pwm 占空比可调 源码_PIC16F914输出可调占空比PWM波形程序
  6. 基础算法 —— 高精度计算 —— 高精度除法
  7. nil和NSNull
  8. (四)Raspberry Pi上的人工智能人脸检测
  9. ionic 禁止横屏处理
  10. 【笔记目录】南邮(通达)计算机专业基础
  11. 如何开始第一个开源项目?
  12. 山西台达plc可编程控制器_(PLC)可编程控制器的编程语言你了解吗?不妨看看...
  13. 面向意图的SDN北向接口
  14. Cython基础--Cython入门
  15. glibc的几个有用的处理二进制位的内置函数(转)
  16. 欧姆龙plc解密实例_OMRON PLC的加密和解密方法
  17. OSChina 周六乱弹 —— 泡面就要泡着吃……
  18. RecyclerView+index索引实现仿微信通讯录
  19. 俞敏洪励志演讲:摆脱恐惧
  20. 40、查询选修“张三”老师所授课程的学生中成绩最高的学生姓名及其成绩(重要top)

热门文章

  1. VS2010 SP1 Beta与VisualSVN的冲突引起VS2010关闭时重启
  2. 输入法项目-用delphi生成GBK 中文编码 GBK 扩充汉字编码表(3) GBK/3: $8140 —$A0FE(部分)...
  3. 成本速度定成败 四种宽带接入技术大比拼(1)
  4. 安装neo1973的GPS驱动[转]
  5. 《Programming Ruby 中文版第二版》P577页singleton_method_undefined方法说明有点问题
  6. 金融类APP不得强制读取通讯录
  7. java.lang.SecurityException Permission Denial opening provider ngyb.createdatabase.AccountProvider
  8. 最新Android系统版本与API等级对应关系表
  9. Activity从创建到显示的整个过程
  10. LINUX常用命令(基础)