㈠ 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
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]
[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
③ 开始导入
[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 里查询
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
分享到:
相关推荐
SSM+redis+mysql框架实现的一个简单博客,SSM+redis+mysql框架实现的一个简单博客SSM+redis+mysql框架实现的一个简单博客SSM+redis+mysql框架实现的一个简单博客SSM+redis+mysql框架实现的一个简单博客SSM+redis+...
- Redis 和 MySQL 双写一致性 - 高并发高可用方案 - Join语句还能不能用? - 主从同步有延迟怎么办? - .frm .myi .myd .ibd 文件 - 为什么表数据删掉一半,表文件大小不变? - 误删表数据除了跑路,还能干啥? - MySQL...
支持codis迁移数据到redis 支持codis迁移数据到redis cluster 支持redis迁移数据到redis 支持redis迁移数据到codis 支持增量同步数据
redis迁移到redis,支持string、list、set、hash;支持主从、支持集群版;支持制定库迁移,已经测试验证。如有问题欢迎留言指出可以定向优化
基于Redis和Mysql的存储系统的设计与实现,范东媛,钮心忻,本文基于Redis和Mysql数据库设计并且实现了在线学习平台的数据存储系统。利用Mysql的持久化存储和Redis的高速读写设计出具有存储数据庞�
SpringBoot+Vue+Redis+Mysql实现水果商城.zip SpringBoot+Vue+Redis+Mysql实现水果商城.zip SpringBoot+Vue+Redis+Mysql实现水果商城.zip SpringBoot+Vue+Redis+Mysql实现水果商城.zip SpringBoot+Vue+Redis+...
Nagios监控redis、MySQL插件,亲测可用。 不能用的可以加Q私聊
redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享
redis缓存mysql数据,实现通过redis解决数据库读操作频繁的问题。
这是一个java WEB小项目,用 Maven Springboot+mybatis+mysql+redis集成的小项目例子,可供新手进行参考学习,数据库是mysql 5.5 ,只是一个简单的小参考例子,测试过可以正常运行
基于Springboot+Redis+Mysql+Kafka开发的高并发限时的商品秒杀系统.zip 毕业设计 基于springboot mysql Vue的系统开发,供参考,提供说明材料+源代码 毕业设计 基于springboot mysql Vue的系统开发,供参考,提供...
keepalived+nginx+tomcat+redis+mysql所需的jdk包,之前csdn不让上传超过200m得只能分开上传。
本资源包含了redis集群, tomcat优化以及 MySQL5.6优化
spring-redis-mysql整合,前台为jquery,后台spring-mybatis
1、新旧redis集群迁移 2、支持redis集群的存量和增量数据迁移 3、支持redis集群数据的离线迁移
基于springboot+redis+mysql的支付系统源码+数据库.zip基于springboot+redis+mysql的支付系统源码+数据库.zip基于springboot+redis+mysql的支付系统源码+数据库.zip基于springboot+redis+mysql的支付系统源码+数据库...
在SQL中操作Redis或者Redis集群,达到Redis与MySQL的数据一致性.zip
docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=密码 -v /windows盘符/指定的文件夹路径:/var/lib/mysql mysql:5.7 redis: docker run -p 6379:6379 -d -v /windows盘符/指定的文件夹路径:/data redis:...