Jadual Kandungan
1 Berhenti menggunakan KEYS *
2. Ketahui punca yang melambatkan Redis
3、将 Redis-Benchmark 结果作为参考,而不要一概而论
4、Hashes 是你的最佳选择
5、设置 key 值的存活时间
6. Pilih strategi kitar semula yang sesuai
7 Jika data anda penting, sila gunakan Try/Except
8. Jangan kehabisan instance
9 Adakah lebih banyak teras lebih baik? !
10. Ketersediaan tinggi
Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan linux Pengalaman Redis yang perlu anda ketahui untuk operasi dan penyelenggaraan Linux

Pengalaman Redis yang perlu anda ketahui untuk operasi dan penyelenggaraan Linux

Aug 04, 2023 pm 04:17 PM
linux redis


Redis sangat popular dalam komuniti teknologi semasa. Redis telah berjalan jauh dari projek peribadi kecil dari Antirez hingga menjadi standard industri untuk penyimpanan data dalam memori. Set amalan terbaik yang terhasil membolehkan kebanyakan orang menggunakan Redis dengan betul.

Di bawah ini kami akan meneroka 10 pengalaman menggunakan Redis dengan betul.

1 Berhenti menggunakan KEYS *

Baiklah, memulakan artikel ini dengan mencabar arahan ini mungkin bukan cara yang baik, tetapi ia mungkin perkara yang paling penting. Banyak kali apabila kita memberi perhatian kepada statistik contoh redis, kita akan dengan cepat memasukkan arahan "KEYS *" supaya maklumat utama akan dipaparkan dengan jelas. Untuk bersikap adil, dari perspektif pengaturcaraan, kami cenderung untuk menulis pseudokod seperti berikut:

for key in'keys *':
doAllTheThings() 
Salin selepas log masuk

Tetapi apabila anda mempunyai 13 juta kekunci, kelajuan pelaksanaan akan menjadi perlahan. Oleh kerana kerumitan masa perintah KEYS ialah O(n), dengan n ialah bilangan kekunci yang akan dikembalikan, kerumitan arahan ini bergantung pada saiz pangkalan data. Dan semasa pelaksanaan operasi ini, tiada arahan lain boleh dilaksanakan dalam contoh anda.

Sebagai arahan alternatif, lihat SCAN, yang membolehkan anda melakukannya dengan cara yang lebih mesra pengguna... SCAN mengimbas pangkalan data dalam lelaran tambahan. Operasi ini dilakukan berdasarkan lelaran kursor, jadi anda boleh berhenti atau meneruskan pada bila-bila masa yang anda rasa patut.

2. Ketahui punca yang melambatkan Redis

Memandangkan Redis tidak mempunyai log yang sangat terperinci, adalah sangat sukar untuk mengetahui perkara yang dilakukan di dalam instance Redis. Mujurlah, Redis menyediakan alat statistik arahan seperti berikut:

127.0.0.1:6379> INFO commandstats

# Commandstats

cmdstat_get:calls=78,usec=608,usec_per_call=7.79

cmdstat_setex:calls=5,usec=71,usec_per_call=14.20

cmdstat_keys:calls=2,usec=42,usec_per_call=21.00

cmdstat_info:calls=10,usec=1931,usec_per_call=193.10
Salin selepas log masuk

Melalui alat ini, anda boleh melihat petikan semua statistik arahan, seperti berapa kali arahan telah dilaksanakan dan bilangan milisaat yang diperlukan untuk melaksanakan perintah (jumlah masa bagi setiap arahan dan masa purata) hanya laksanakan arahan CONFIG RESETSTAT untuk menetapkan semula supaya anda boleh mendapatkan keputusan statistik yang baharu sepenuhnya.

3、将 Redis-Benchmark 结果作为参考,而不要一概而论

Redis 之父 Salvatore 就说过:“通过执行GET/SET命令来测试Redis就像在雨天检测法拉利的雨刷清洁镜子的效果”。很多时候人们跑到我这里,他们想知道为什么自己的Redis-Benchmark统计的结果低于最优结果 。但我们必须要把各种不同的真实情况考虑进来,例如:

  • 可能受到哪些客户端运行环境的限制?
  • 是同一个版本号吗?
  • 测试环境中的表现与应用将要运行的环境是否一致?

Redis-Benchmark的测试结果提供了一个保证你的 Redis-Server 不会运行在非正常状态下的基准点,但是你永远不要把它作为一个真实的“压力测试”。压力测试需要反应出应用的运行方式,并且需要一个尽可能的和生产相似的环境。

4、Hashes 是你的最佳选择

以一种优雅的方式引入 hashes 吧。hashes 将会带给你一种前所未有的体验。之前我曾看到过许多类似于下面这样的key结构:

foo:first_name

foo:last_name

foo:address
Salin selepas log masuk

上面的例子中,foo 可能是一个用户的用户名,其中的每一项都是一个单独的 key。这就增加了 犯错的空间,和一些不必要的 key。使用 hash 代替吧,你会惊奇地发现竟然只需要一个 key :

127.0.0.1:6379> HSET foo first_name 'Joe'

(integer) 1

127.0.0.1:6379> HSET foo last_name 'Engel'

(integer) 1

127.0.0.1:6379> HSET foo address '1 Fanatical Pl'

(integer) 1

127.0.0.1:6379> HGETALL foo

1) 'first_name'

2) 'Joe'

3) 'last_name'

4) 'Engel'

5) 'address'

6) '1 Fanatical Pl'

127.0.0.1:6379> HGET foo first_name

'Joe'
Salin selepas log masuk

5、设置 key 值的存活时间

无论什么时候,只要有可能就利用key超时的优势。一个很好的例子就是储存一些诸如临时认证key之类的东西。当你去查找一个授权key时——以OAUTH为例——通常会得到一个超时时间。这样在设置key的时候,设成同样的超时时间,Redis就会自动为你清除!而不再需要使用KEYS *来遍历所有的key了,怎么样很方便吧?

6. Pilih strategi kitar semula yang sesuai

Sekarang kita telah bercakap tentang topik pembersihan kunci, mari kita bercakap tentang strategi kitar semula. Apabila ruang contoh Redis diisi, ia akan cuba menuntut semula beberapa kunci. Bergantung pada penggunaan anda, saya amat mengesyorkan menggunakan strategi volatile-lru - dengan syarat anda telah menetapkan tamat masa pada kunci. Tetapi jika anda menjalankan sesuatu yang serupa dengan cache dan tidak menetapkan mekanisme tamat masa untuk kunci, anda boleh mempertimbangkan untuk menggunakan mekanisme kitar semula allkeys-lru. Cadangan saya adalah untuk melihat apa yang mungkin di sini dahulu.

7 Jika data anda penting, sila gunakan Try/Except

Jika anda mesti memastikan data kritikal boleh dimasukkan ke dalam contoh Redis, saya amat mengesyorkan meletakkannya dalam blok try/except. Hampir semua pelanggan Redis menggunakan strategi "hantar dan lupakan", jadi selalunya perlu untuk mempertimbangkan sama ada kunci sebenarnya diletakkan dalam pangkalan data Redis. Kerumitan meletakkan cuba/harapkan ke dalam arahan Redis bukanlah maksud artikel ini. Anda hanya perlu tahu bahawa berbuat demikian memastikan data penting diletakkan di tempat yang sepatutnya.

8. Jangan kehabisan instance

Bila boleh, sebarkan beban kerja berbilang kejadian redis. Bermula dari versi 3.0.0, Redis menyokong kelompok. Kluster Redis membolehkan anda memisahkan beberapa kekunci yang mengandungi mod induk/hamba berdasarkan julat kekunci. "Keajaiban" lengkap di sebalik pengelompokan boleh didapati di sini. Tetapi jika anda sedang mencari tutorial, ini adalah tempat yang sesuai. Jika pengelompokan bukan pilihan, pertimbangkan ruang nama dan sebarkan kunci anda merentas berbilang kejadian. Mengenai cara mengedarkan data, terdapat ulasan hebat ini di laman web redis.io.

9 Adakah lebih banyak teras lebih baik? !

Sudah tentu ia salah. Redis ialah proses satu-benang dan hanya menggunakan maksimum dua teras walaupun dengan kegigihan didayakan. Melainkan anda bercadang untuk menjalankan berbilang kejadian pada satu hos - semoga hanya dalam persekitaran pembangunan dan ujian! ——Jika tidak, tidak perlu lebih daripada 2 teras untuk contoh Redis.

10. Ketersediaan tinggi

Setakat ini, Redis Sentinel telah diuji secara menyeluruh, dan ramai pengguna telah menerapkannya pada persekitaran pengeluaran (termasuk ObjectRocket). Jika aplikasi anda sangat bergantung pada Redis, anda perlu menghasilkan penyelesaian ketersediaan tinggi untuk memastikan ia tidak pergi ke luar talian. Sudah tentu, jika anda tidak mahu menguruskan perkara ini sendiri, ObjectRocket menyediakan platform ketersediaan tinggi dan sokongan teknikal 7×24 jam Jika anda berminat, anda boleh mempertimbangkannya.

Atas ialah kandungan terperinci Pengalaman Redis yang perlu anda ketahui untuk operasi dan penyelenggaraan Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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)

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Konfigurasi komputer apa yang diperlukan untuk vscode Konfigurasi komputer apa yang diperlukan untuk vscode Apr 15, 2025 pm 09:48 PM

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

Cara Melihat Proses Docker Cara Melihat Proses Docker Apr 15, 2025 am 11:48 AM

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Apa yang perlu dilakukan sekiranya imej docker gagal Apa yang perlu dilakukan sekiranya imej docker gagal Apr 15, 2025 am 11:21 AM

Langkah Penyelesaian Masalah untuk Gagal Docker Image Build: Semak Sintaks Dockerfile dan Versi Ketergantungan. Semak jika konteks binaan mengandungi kod sumber dan kebergantungan yang diperlukan. Lihat log binaan untuk butiran ralat. Gunakan pilihan sasaran untuk membina fasa hierarki untuk mengenal pasti titik kegagalan. Pastikan anda menggunakan versi terkini Enjin Docker. Bina imej dengan --t [nama imej]: mod debug untuk debug masalah. Semak ruang cakera dan pastikan ia mencukupi. Lumpuhkan Selinux untuk mengelakkan gangguan dengan proses binaan. Tanya platform komuniti untuk mendapatkan bantuan, sediakan dockerfiles dan bina deskripsi log untuk cadangan yang lebih spesifik.

Apa itu vscode untuk apa vscode? Apa itu vscode untuk apa vscode? Apr 15, 2025 pm 06:45 PM

VS Kod adalah nama penuh Visual Studio Code, yang merupakan editor kod dan persekitaran pembangunan yang dibangunkan oleh Microsoft. Ia menyokong pelbagai bahasa pengaturcaraan dan menyediakan penonjolan sintaks, penyiapan automatik kod, coretan kod dan arahan pintar untuk meningkatkan kecekapan pembangunan. Melalui ekosistem lanjutan yang kaya, pengguna boleh menambah sambungan kepada keperluan dan bahasa tertentu, seperti debuggers, alat pemformatan kod, dan integrasi Git. VS Kod juga termasuk debugger intuitif yang membantu dengan cepat mencari dan menyelesaikan pepijat dalam kod anda.

VSCode tidak dapat memasang pelanjutan VSCode tidak dapat memasang pelanjutan Apr 15, 2025 pm 07:18 PM

Sebab -sebab pemasangan sambungan kod VS mungkin: ketidakstabilan rangkaian, kebenaran yang tidak mencukupi, isu keserasian sistem, versi kod VS terlalu lama, perisian antivirus atau gangguan firewall. Dengan menyemak sambungan rangkaian, keizinan, fail log, mengemas kini kod VS, melumpuhkan perisian keselamatan, dan memulakan semula kod VS atau komputer, anda boleh menyelesaikan masalah dan menyelesaikan masalah secara beransur -ansur.

Cara menukar mod cina dengan vscode Cara menukar mod cina dengan vscode Apr 15, 2025 pm 11:39 PM

VS Kod untuk menukar mod Cina: Buka antara muka Tetapan (Windows/Linux: Ctrl, MacOS: CMD,) Cari "Editor: Bahasa" Tetapan Pilih "Cina" dalam menu drop-down Simpan tetapan dan mulakan semula kod vs

Apakah tujuan utama Linux? Apakah tujuan utama Linux? Apr 16, 2025 am 12:19 AM

Penggunaan utama Linux termasuk: 1. Sistem Operasi Pelayan, 2. Sistem Terbenam, 3. Linux cemerlang dalam bidang ini, menyediakan kestabilan, keselamatan dan alat pembangunan yang cekap.

See all articles