浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 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 的高效迁移, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Kunci strategi pertahanan keselamatan phpmyadmin adalah: 1. Gunakan versi terkini Phpmyadmin dan kerap mengemas kini PHP dan MySQL; 2. Mengawal hak akses, penggunaan. Htaccess atau kawalan akses pelayan web; 3. Dayakan kata laluan yang kuat dan pengesahan dua faktor; 4. Menyokong pangkalan data secara teratur; 5. Berhati -hati semak fail konfigurasi untuk mengelakkan mendedahkan maklumat sensitif; 6. Gunakan Firewall Aplikasi Web (WAF); 7. Menjalankan audit keselamatan. Langkah-langkah ini secara berkesan dapat mengurangkan risiko keselamatan yang disebabkan oleh phpmyadmin disebabkan oleh konfigurasi yang tidak betul, versi yang lebih lama atau risiko keselamatan alam sekitar, dan memastikan keselamatan pangkalan data.

Dua kaedah berikut boleh digunakan untuk membersihkan data dalam REDIS: Perintah Flushall: Padam semua kunci dan nilai dalam pangkalan data. Config ResetStat Command: Tetapkan semula semua negeri pangkalan data (termasuk kunci, nilai, dan statistik lain).

Bagaimana untuk menyambung ke MySQL menggunakan phpmyadmin? URL untuk mengakses phpmyadmin biasanya http: // localhost/phpmyadmin atau http: // [alamat ip pelayan anda]/phpmyadmin. Masukkan nama pengguna dan kata laluan MySQL anda. Pilih pangkalan data yang ingin anda sambungkan. Klik butang "Sambungan" untuk membuat sambungan.

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.
