首頁 資料庫 mysql教程 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis

浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis

Jun 07, 2016 pm 04:37 PM
mysql redis 使用 完成 管道

㈠ Redis 与 MySQL 的耦合性 ? ?? ? ?? ? ? 在业务架构早期、我们便该吃着碗里的看着锅里的、切莫让MySQL 有梦、而Redis 无心 ? ? 毕竟、有些关系型的结构不适合放到Redis跑、男女搭配、干活不累嘛、推荐让MySQL与Redis喜结连理 ? ?? ? ? 其次、这 2 人、一

㈠ 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   <br>  <br>? ? ? ?④ 在Redis 里查询 <p>  </p><pre class="brush:php;toolbar:false">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


作者:linwaterbin 发表于2013-5-30 22:11:24 原文链接

阅读:82 评论:0 查看评论

浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

REDIS的角色:探索數據存儲和管理功能 REDIS的角色:探索數據存儲和管理功能 Apr 22, 2025 am 12:10 AM

Redis在數據存儲和管理中扮演著關鍵角色,通過其多種數據結構和持久化機製成為現代應用的核心。 1)Redis支持字符串、列表、集合、有序集合和哈希表等數據結構,適用於緩存和復雜業務邏輯。 2)通過RDB和AOF兩種持久化方式,Redis確保數據的可靠存儲和快速恢復。

在MySQL中解釋外鍵的目的。 在MySQL中解釋外鍵的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

比較和對比Mysql和Mariadb。 比較和對比Mysql和Mariadb。 Apr 26, 2025 am 12:08 AM

MySQL和MariaDB的主要區別在於性能、功能和許可證:1.MySQL由Oracle開發,MariaDB是其分支。 2.MariaDB在高負載環境中性能可能更好。 3.MariaDB提供了更多的存儲引擎和功能。 4.MySQL採用雙重許可證,MariaDB完全開源。選擇時應考慮現有基礎設施、性能需求、功能需求和許可證成本。

SQL與MySQL:澄清兩者之間的關係 SQL與MySQL:澄清兩者之間的關係 Apr 24, 2025 am 12:02 AM

SQL是一種用於管理關係數據庫的標準語言,而MySQL是一個使用SQL的數據庫管理系統。 SQL定義了與數據庫交互的方式,包括CRUD操作,而MySQL實現了SQL標準並提供了額外的功能,如存儲過程和触發器。

REDIS:了解其架構和目的 REDIS:了解其架構和目的 Apr 26, 2025 am 12:11 AM

Redis是一种内存数据结构存储系统,主要用作数据库、缓存和消息代理。它的核心特点包括单线程模型、I/O多路复用、持久化机制、复制与集群功能。Redis在实际应用中常用于缓存、会话存储和消息队列,通过选择合适的数据结构、使用管道和事务、以及进行监控和调优,可以显著提升其性能。

MySQL:數據庫,PHPMYADMIN:管理接口 MySQL:數據庫,PHPMYADMIN:管理接口 Apr 29, 2025 am 12:44 AM

MySQL和phpMyAdmin可以通過以下步驟進行有效管理:1.創建和刪除數據庫:在phpMyAdmin中點擊幾下即可完成。 2.管理表:可以創建表、修改結構、添加索引。 3.數據操作:支持插入、更新、刪除數據和執行SQL查詢。 4.導入導出數據:支持SQL、CSV、XML等格式。 5.優化和監控:使用OPTIMIZETABLE命令優化表,並利用查詢分析器和監控工具解決性能問題。

MySQL與Oracle有何不同? MySQL與Oracle有何不同? Apr 22, 2025 pm 05:57 PM

MySQL適合快速開發和中小型應用,Oracle適合大型企業和高可用性需求。 1)MySQL開源、易用,適用於Web應用和中小型企業。 2)Oracle功能強大,適合大型企業和政府機構。 3)MySQL支持多種存儲引擎,Oracle提供豐富的企業級功能。

See all articles