Rumah pangkalan data tutorial mysql 浅谈Redis与MySQL的耦合性以及利用管道完成MySQL到Redis的高效迁_MySQL

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

Jun 01, 2016 pm 01:34 PM
saluran paip

bitsCN.com

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

 

  ㈠ Redis 与 MySQL 的耦合性

    

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

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

    

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

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

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

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

    

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

    在 MySQL中是 这样一行一行存储的。而在 Redis中你可以存成一个set,或者zset等

 

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

 

    大体流程是由 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

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

bitsCN.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan paip untuk membaca dan menulis fail di Golang? Bagaimana untuk menggunakan paip untuk membaca dan menulis fail di Golang? Jun 04, 2024 am 10:22 AM

Fail membaca dan menulis melalui paip: Cipta paip untuk membaca data daripada fail dan hantarkannya melalui paip Terima data daripada paip dan proseskannya Tulis data yang diproses ke fail Gunakan goroutine untuk melaksanakan operasi ini secara serentak untuk meningkatkan prestasi

Pengenalan kepada arahan saluran paip Linux dan penggunaan asas Pengenalan kepada arahan saluran paip Linux dan penggunaan asas Feb 22, 2024 pm 05:57 PM

Perintah paip dalam Linux ialah alat berkuasa yang boleh menggunakan output satu arahan sebagai input perintah lain untuk merealisasikan penghantaran dan pemprosesan data antara arahan yang berbeza. Artikel ini akan memperkenalkan asas arahan paip dalam Linux, serta beberapa contoh penggunaan dan kod biasa. Pengenalan kepada arahan saluran paip Dalam sistem Linux, arahan saluran paip menggunakan simbol bar menegak (|) untuk menyambung dua atau lebih arahan, contohnya: command1|command2 Dengan cara ini, output command1 akan menjadi sebagai command2

Gunakan saluran paip Linux untuk meningkatkan kecekapan kerja Gunakan saluran paip Linux untuk meningkatkan kecekapan kerja Feb 22, 2024 pm 09:30 PM

Dalam masyarakat maklumat hari ini, komputer telah menjadi alat yang sangat diperlukan dalam kerja dan kehidupan kita. Sebagai kakitangan yang mahir dalam menggunakan sistem Linux, adalah sangat penting untuk menggunakan fungsi berkuasa Linux untuk meningkatkan kecekapan kerja. Artikel ini akan memberi tumpuan kepada cara menggunakan fungsi penting paip (Paip) dalam Linux untuk memudahkan proses kerja dan meningkatkan kecekapan kerja. Paip Linux ialah jenis fail khas yang boleh menghantar output satu arahan terus kepada arahan lain tanpa menyimpan hasil perantaraan.

Bagaimana untuk melaksanakan mekanisme tamat masa menggunakan saluran paip dalam bahasa Go? Bagaimana untuk melaksanakan mekanisme tamat masa menggunakan saluran paip dalam bahasa Go? Jun 03, 2024 pm 03:01 PM

Gunakan paip untuk melaksanakan mekanisme tamat masa: Buat paip. Buat goroutine untuk menunggu elemen dalam saluran paip. Dalam goroutine lain, tutup paip selepas masa yang ditetapkan. Gunakan pernyataan pilih untuk memilih tindakan yang sesuai untuk dilakukan apabila elemen saluran paip tiba atau tamat masa.

Prinsip fungsi golang dan komunikasi saluran paip Prinsip fungsi golang dan komunikasi saluran paip May 04, 2024 pm 06:36 PM

Dalam bahasa Go, fungsi dan paip digunakan bersama untuk mencapai komunikasi antara proses. Fungsi boleh menghantar paip sebagai parameter untuk menghantar atau menerima data melalui paip. Paip ialah saluran tanpa buffer yang boleh digunakan untuk menghantar dan menerima data antara goroutine dan menyokong kedua-dua paip tidak terarah dan terarah. Digunakan semasa menghantar data

Mekanisme penyegerakan untuk saluran paip golang dan komunikasi fungsi Mekanisme penyegerakan untuk saluran paip golang dan komunikasi fungsi May 02, 2024 pm 04:21 PM

Mekanisme penyegerakan saluran paip dan komunikasi fungsi dalam bahasa Go dilaksanakan melalui penyekatan penimbal saluran paip untuk memastikan ketertiban dan keselamatan penghantaran data. Khususnya: apabila paip kosong, data yang diterima akan disekat. Apabila paip penuh, penghantaran data akan disekat. Kes praktikal: Kira jujukan Fibonacci dan gunakan saluran paip untuk menyegerakkan penghantaran hasil pengiraan.

Bagaimana untuk meningkatkan prestasi aplikasi menggunakan paip dalam Go? Bagaimana untuk meningkatkan prestasi aplikasi menggunakan paip dalam Go? Jun 05, 2024 pm 05:10 PM

Pipes in Go ialah mekanisme komunikasi yang digunakan untuk memindahkan data antara gorouti dengan selamat dan cekap untuk meningkatkan prestasi aplikasi. Terdapat dua jenis operasi saluran paip: Unbuffered: data mesti dihantar dan diterima secara serentak. Buffered: Paip telah memperuntukkan ruang storan, membenarkan hantar dan terima tak segerak. Contoh: Apabila mengira jujukan Fibonacci, saluran paip digunakan untuk berkomunikasi antara goroutine utama dan goroutine pengiraan, dengan itu mencapai pengiraan serentak dan meningkatkan prestasi dengan ketara.

Bagaimana untuk melaksanakan corak pengeluar-pengguna menggunakan saluran paip dalam bahasa Go? Bagaimana untuk melaksanakan corak pengeluar-pengguna menggunakan saluran paip dalam bahasa Go? Jun 02, 2024 pm 03:28 PM

Model pengeluar-pengguna membolehkan pengeluar memasukkan data ke dalam cache, sementara pengguna boleh mengekstrak data daripadanya secara serentak untuk diproses. Dalam Go, paip ialah mekanisme komunikasi yang melaksanakan corak ini: Cipta paip: make(chanT), dengan T ialah jenis data pemindahan. Fungsi pengeluar: memasukkan data ke dalam paip (ch

See all articles