informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1.Kinerja
Redis: Hanya menggunakan satu inti. Rata-rata, Redis memiliki kinerja lebih tinggi dibandingkan Memcached ketika menyimpan data kecil di setiap inti.
Memcached: Anda dapat menggunakan banyak inti, dan pada data lebih dari 100 ribu, kinerja Memcached lebih tinggi daripada Redis.
2. Efisiensi penggunaan memori
MemCached: Menggunakan penyimpanan nilai kunci sederhana, Memcached memiliki pemanfaatan memori yang lebih tinggi.
Redis: Jika struktur hash digunakan untuk penyimpanan nilai kunci, pemanfaatan memorinya akan lebih tinggi daripada Memcached karena kompresi gabungannya.
3. Ruang memori dan ukuran data
MemCached: Memori maksimum dapat dimodifikasi menggunakan algoritma LRU. Ukuran satu nilai kunci di Memcached terbatas, dan suatu nilai hanya mendukung maksimal 1MB.
Redis: Menambahkan fitur VM dan menerobos keterbatasan memori fisik. Redis mendukung ukuran nilai kunci tunggal maksimum sebesar 512 MB.
4.Dukungan struktur data
MemCached: Struktur data tunggal, hanya digunakan untuk menyimpan data dalam cache.
Redis: Mendukung tipe data yang lebih kaya. Redis tidak hanya mendukung data tipe k/v sederhana, tetapi juga menyediakan penyimpanan struktur data seperti list, set, zset, dan hash.
Operasi kaya pada data dapat dilakukan langsung di sisi server, yang dapat mengurangi waktu IO jaringan dan volume data.
5. Keandalan
Memcached: Ini hanyalah cache memori dengan persyaratan keandalan yang rendah. MemCached tidak mendukung persistensi data. Data hilang setelah listrik padam atau dihidupkan ulang, tetapi stabilitas terjamin.
Redis: memiliki persyaratan keandalan yang tinggi, mendukung persistensi data dan pemulihan data, memungkinkan satu titik kegagalan, dan juga memengaruhi beberapa kinerja. Mendukung pencadangan data, yaitu pencadangan data dalam mode master-slave. Redis mendukung persistensi data dan dapat menyimpan data di memori ke disk dan memuatnya kembali untuk digunakan saat memulai ulang.
6. Skenario penerapan
Memcached: Mengurangi beban database dan meningkatkan kinerja dalam cache sistem dinamis, cocok untuk skenario membaca lebih banyak, menulis lebih sedikit, dan volume data besar.
Redis: Cocok untuk sistem yang memerlukan efisiensi membaca dan menulis yang tinggi, bisnis pemrosesan data yang kompleks, dan persyaratan keamanan yang tinggi.
1.redis instalasi
Matikan firewallnya terlebih dahulu
- 先把防火墙关掉
- systemctl stop firewalld
- set setenforce 0
-
- [root@localhost ~]# yum -y install gcc* zlib-devel
- 解压 redis包
- [root@localhost ~]# tar xvzf redis-4.0.9.tar.gz
- [root@localhost ~]# cd redis-4.0.9/
-
- make
- 2:查看进程
- [root@localhost utils]# netstat -anpt | grep redis
-
- 3:redis服务控制
- [root@localhost ~]#/etc/init.d/redis_6379 stop
- [root@localhost ~]#/etc/init.d/redis_6379 start
- [root@localhost ~]#/etc/init.d/redis_6379 restart
- [root@localhost ~]#/etc/init.d/redis_6379 status
- 4.配置参数的修改
- [root@localhost ~]#vim /etc/redis/6379.conf
- bind 127.0.0.1 192.168.10.101 //监听的主机地址
- port 6379 //端口
- daemonize yes //启用守护进程
- pidfile /var/run/redis_6379.pid //指定 PID 文件
- loglevel notice //日志级别
- logfile /var/log/redis_6379.log //指定日志文件
-
- [root@localhost~]#/etc/init.d/redis_6379 restart
- [root@localhost utils]# netstat -anpt | grep redis
-
- 二:Redis 命令工具
- redis-server:用于启动 Redis 的工具;
- redis-benchmark:用于检测 Redis 在本机的运行效率;
- redis-check-aof:修复 AOF 持久化文件;
- redis-check-rdb:修复 RDB 持久化文件;
- redis-cli:Redis 命令行工具。
atur buat
mendapatkan pandangan
kunci * lihat semua
ganti nama (akan ditimpa)
renamenx (periksa apakah ada nama yang sama, lalu putuskan apakah akan menjalankan perintah rename,)
del (perintah dapat menghapus kunci tertentu dari database saat ini)
ada (perintah dapat menentukan apakah nilai kunci ada)
type (gunakan perintah type untuk mendapatkan tipe nilai yang sesuai dengan kunci)
pilih (ganti basis data)
pindah (memindahkan data)
flushdb (menghapus data database saat ini)
flushall (menghapus semua data database)
- -p:指定服务器端口;
- -s:指定服务器 socket;
- -c:指定并发连接数;
- -n:指定请求数;
- -d:以字节的形式指定 SET/GET 值的数据大小;
- -k:1=keep alive 0=reconnect;
- -r:SET/GET/INCR 使用随机 key, SADD 使用随机值;
- -P:通过管道传输<numreq>请求;
- -q:强制退出 redis。仅显示 query/sec 值;
- --csv:以 CSV 格式输出;
- -l:生成循环,永久执行测试;
- -t:仅运行以逗号分隔的测试命令列表;
- -I:Idle 模式。仅打开 N 个 idle 连接并等待。
Merah Semua data disimpan dalam memori dan kemudian disimpan secara asinkron ke disk dari waktu ke waktu.(Ini disebut“Mode semi-persisten”); Anda juga dapat menulis setiap perubahan data ke a tambahkan hanya file(aof)di dalam(Ini disebut“Mode persistensi penuh”)。
Karena Merah Semua data disimpan dalam memori. Jika persistensi tidak dikonfigurasi,Merah Setelah restart, semua data hilang.Oleh karena itu, perlu untuk mengaktifkannyaMerah Fungsi persistensi menyimpan data ke disk Kapan Merah Setelah reboot, data dapat dipulihkan dari disk.Merah Dua metode disediakan untuk ketekunan, satu adalah Bahasa Indonesia: Bahasa Indonesia: RDB(Basis Data Redis) Ketekunan (prinsipnya adalah untuk Reid dan para pengikutnyaWaktu pencatatan basis data dalam memori membuang ke disk Bahasa Indonesia: RDB ketekunan), yang lainnya adalah Angkatan Udara(tambahkan hanya file)Ketekunan (prinsipnya adalah untuk Reid dan para pengikutnya Log operasi ditulis ke file dengan cara terlampir).
Metode bawaan
Persistensi RDB adalah proses menghasilkan snapshot dari data proses saat ini dan menyimpannya ke hard disk. Proses memicu persistensi RDB dibagi menjadi pemicu manual dan pemicu otomatis.
Mekanisme pemicu: Pemicu manual sesuai dengan perintah simpan dan bgsave masing-masing.
perintah simpan: memblokir server Redis saat ini hingga proses RDB selesai. Untuk instance dengan jumlah memori yang besar, ini akan menyebabkan pemblokiran waktu. Tidak disarankan untuk digunakan di lingkungan online.
perintah bgsave: Proses Redis menjalankan operasi fork (fungsi yang digunakan untuk membuat proses) untuk membuat proses anak. Proses persistensi RDB bertanggung jawab atas proses anak dan berakhir secara otomatis setelah selesai. Pemblokiran hanya terjadi selama fase fork.
Keuntungan RDB:
RDB adalah file biner terkompresi dan ringkas yang mewakili cuplikan data Redis pada titik waktu tertentu. Sangat cocok untuk pencadangan, penyalinan penuh, dan skenario lainnya. Misalnya, lakukan pencadangan bgsave setiap 6 jam dan salin file RDB ke mesin jarak jauh atau sistem file untuk pemulihan bencana.
Redis memuat RDB dan memulihkan data jauh lebih cepat daripada metode AOF.
Kekurangan RDB:
Data dalam mode RDB tidak dapat mencapai persistensi real-time/persistensi tingkat kedua. Karena setiap kali bgsave dijalankan, operasi fork dilakukan untuk membuat proses anak, yang merupakan operasi kelas berat dan biaya eksekusi yang sering terlalu tinggi.
File RDB disimpan dalam format biner tertentu. Selama evolusi versi Redis, ada beberapa format versi RDB. Ada masalah bahwa versi lama layanan Redis tidak kompatibel dengan format RDB versi baru.
2. Apa itu AOF?
Persistensi AOF (tambahkan file saja): catat setiap perintah tulis di log independen, lalu jalankan kembali perintah di file AOF untuk memulihkan data saat memulai ulang. Fungsi utama AOF adalah untuk menyelesaikan masalah persistensi data secara real-time. Hal ini kini menjadi arus utama persistensi Redis.
Korbankan sebagian kinerja demi konsistensi cache yang lebih tinggi (Angkatan Udara),
Jika operasi penulisan sering dilakukan, jangan aktifkan pencadangan untuk mendapatkan kinerja yang lebih tinggi dan tunggu operasi manual. menyimpan kapan, buat cadangan lagi (Bahasa Indonesia: Bahasa Indonesia: RDB)
Komentar:
Jika file persisten perlu dimuat setelah proses ulang dimulai ulang, file AOF akan dipilih.
Jika RDB diaktifkan terlebih dahulu lalu AOF diaktifkan, dan RDB dipertahankan terlebih dahulu, konten dalam file RDB akan ditimpa oleh AOF.
[root@localhost ~]# vim /etc/redis/6379.conf
Membuka 6379.konflik Setelah file tersebut, cari menyimpan, Anda dapat melihat informasi konfigurasi seperti gambar di bawah ini.
ada Merah Ada tiga metode sinkronisasi pada file konfigurasi, yaitu:
selalu: persistensi sinkron, setiap kali data berubah, data akan segera ditulis ke disk
everysec: Direkomendasikan secara default, rekam secara asinkron setiap detik (nilai default)
no: Tidak ada sinkronisasi, menyerahkan kepada sistem operasi untuk memutuskan bagaimana melakukan sinkronisasi
Abaikan instruksi terakhir yang berpotensi bermasalah
[root@localhost ~]#/etc/init.d/redis_6379 mulai ulang
untuk menyelesaikannya Angkatan Udara Jika ukuran file terus bertambah, pengguna dapat melaporkan ke Merah mengirim BGREWRITEAOFMemesan.BGREWRITEAOF Perintah akan dihapus melalui Angkatan Udara perintah berlebihan dalam file untuk ditimpa (menulis kembali)Angkatan Udarafile, buat Angkatan Udara Usahakan ukuran file sekecil mungkin.
127.0.0.1:6379> tuliskan bgre
Penulisan ulang file hanya penambahan latar belakang dimulai
# Jika lognya adalah BGREWRITEAOF,jikano-appendfsync-saat-menulis-ulangDisetel ke ya, yang berarti operasi penulisan baru tidak akan disinkronkan dengan fsync, tetapi hanya akan disimpan sementara di buffer. , untuk menghindari konflik operasi IO disk, tunggu hingga penulisan ulang selesai sebelum menulis. Default di Redis adalah no
no-appendfsync-on-rewrite tidak
# Ketika ukuran file AOF saat ini dua kali ukuran file AOF selama penulisan ulang log terakhir, operasi BGREWRITEAOF terjadi.
auto-aof-tulis ulang-persentase 100
Komentar:
100MerujukdariRasio pertumbuhan file mengacu pada rasio pertumbuhan file AOF saat ini dibandingkan dengan penulisan ulang terakhir.,100adalah dua kali
#Nilai minimum file AOF saat ini untuk menjalankan perintah BGREWRITEAOF untuk menghindari seringnya BGREWRITEAOF karena ukuran file kecil saat Reids pertama kali dimulai.
auto-aof-tulis ulang-ukuran-min 64mb
192.168.9.236:7001> memori informasi
Used_memory:1210776 #Ukuran memori yang digunakan,dalam byte
Used_memory_human:1.15M # Tampilan dengan unit,di M
Used_memory_rss:7802880 # Berapa banyak memori yang ditempati redis dari sudut pandang sistem operasi?
Used_memory_rss_human:7.44M # Tampilan dengan unit
maxmemory:1073741824 # Ukuran memori maksimum
maxmemory_human:1.00G # Tampilan dengan unit
kebijakan memori-maksimum: Strategi daur ulang
Ø volatil-lru: itu memungkinkan Merah Pilih yang terakhir digunakan dari seluruh kumpulan data kunci Menghapus
Ø volatil-ttl:berdasarkankunciwaktu kadaluwarsa untuk eliminasi
Ø acak-mudah menguap: Memilih data secara acak untuk dihilangkan dari pengumpulan data dengan waktu kedaluwarsa yang ditentukan;
Ø semua kunci-lru:menggunakan LRU Algoritma menghilangkan data dari semua kumpulan data;
Ø semua kunci acak: Memilih data secara acak untuk dihilangkan dari pengumpulan data;
Ø pengusiran: Nonaktifkan penghapusan data (nilai default)
Komentar:
Tetapkan waktu kedaluwarsa kunci
kedaluwarsa v1 10
v1 memiliki waktu kedaluwarsa 10 detik
Komentar:
Kapan Merah Perlu mengambilnya kembali karena tekanan memori kunci jam,Merah Pertimbangan pertama bukanlah mendaur ulang data terlama, melainkan data yang paling sedikit digunakan. kunci atau akan kedaluwarsa kunci Pilih satu secara acak kunci, dihapus dari kumpulan data
Temukan kata kunci requirepass, diikuti dengan kata sandi. Ini dikomentari secara default, yaitu tidak diperlukan kata sandi secara default, sebagai berikut:
Buka komentar, atur sebagai kata sandi Anda sendiri, dan mulai ulang
Gunakan redis-cli untuk terhubung ke redis dan jalankan perintah berikut
config set requirepass 123456
Setelah eksekusi selesai, tidak perlu memulai ulang. Anda harus memasukkan kata sandi saat keluar dari klien dan masuk kembali.
[root@localhost bin]# ./redis-cli -a 123456
[root@localhost bin]# ./redis-cli127.0.0.1:6379> auth 123456
[root@localhost bin]# ./redis-cli -a 123456 shutdown
1) Kata sandi yang ditetapkan dengan memodifikasi file konfigurasi akan berlaku secara permanen; kata sandi yang ditetapkan dengan menggunakan perintah akan berlaku sementara dan akan menjadi tidak valid setelah dimulai ulang.
2) Memodifikasi kata sandi yang ditetapkan dalam file konfigurasi memerlukan restart agar dapat diterapkan; gunakan kata sandi yang ditetapkan oleh perintah agar berlaku setelah keluar dan masuk lagi, dan itu akan menjadi tidak valid setelah memulai ulang.
3) Prioritas perintah lebih tinggi dari prioritas file konfigurasi