Posting blog ini menunjukkan hasil perbandingan kinerja mesin penyimpanan sesi yang berbeda dengan Magento dan mereka tampaknya menyimpulkan bahwa sekitar 75 pengguna bersamaan tidak benar-benar ada perbedaan kinerja di antara mereka.
Saya berpikir bahwa pada level ini (mereka memiliki sekitar 5 transaksi per detik, yang akan menjadi sekitar 430k hit selama periode 12 jam) overhead dalam segala hal yang lain mendominasi angka kinerja yang Anda lihat sejak file / DB / Memcache / Redis semuanya akan dengan senang hati menangani lalu lintas tanpa berkeringat jika digunakan dengan benar.
Itu meninggalkan faktor-faktor lain seperti skalabilitas, keandalan, dan keamanan.
Pertama-tama saya ingin mengatakan bahwa apa pun yang membahayakan penyimpanan file Anda juga kemungkinan besar akan mengkompromikan hal lain karena penyerang kemudian hanya dapat mengubah kode aplikasi Anda atau paling tidak menemukan kunci dan protokol akses penyimpanan / kredensial bahkan jika mereka hanya baca-saja mengakses. Penyimpanan file akan berfungsi dengan baik untuk situs volume rendah, mudah diatur dan mudah dipikirkan. Seperti yang Anda katakan Anda menekan disk, membaca DB juga akan memukul disk dan jika DB bisa men-cache itu, OS Anda juga kemungkinan telah cache file sesi. Juga, satu file yang dibaca, dan sistem file Anda brilian untuk sampai ke sana jika Anda sudah tahu namanya. Jika Anda menggunakan PHP, tahukah Anda berapa banyak file yang dibaca yang harus dilakukan sistem hanya untuk melayani aplikasi Anda? The downside adalah bahwa Anda bisa '
Memcache relatif cepat dan jika Anda mempertimbangkan solusi kelas Memcache secara lebih luas (Redis, dll) ada beberapa yang bahkan akan menjanjikan kegigihan dalam memori yang dibaca untuk kecepatan sehingga Anda mendapatkan yang terbaik dari kedua dunia. Mereka juga relatif mudah untuk dipikirkan dan nilai kunci dari sesi adalah apa yang telah dirancang untuk dilakukan. Apakah Anda tahu berapa banyak yang harus Anda masukkan ke dalam satu sesi untuk mengisi salah satunya? Bagaimanapun, semua pilihan Anda akan memaksa Anda untuk berkompromi jika Anda mencapai kapasitasnya. Disk diisi dengan file (jumlah dan faktor ukuran di sini), penyimpanan cache mengisi kapasitas dan database memiliki jumlah baris terbatas dan batas kapasitas disk yang sama dengan pendekatan file. Juga, sistem ini hanya didistribusikan jika Anda menjalankannya secara terdistribusi. Sebagian besar bekerja dengan baik dengan pengaturan server tunggal. Jika Anda mendistribusikannya maka Anda mungkin sudah memiliki server web terdistribusi / server database dll sehingga masalah sistem terdistribusi Anda tentu tidak akan muncul dari pilihan penyimpanan sesi Anda. Namun, ketika Anda ingin 10x traffic / kapasitas dll, mendapatkan ada jauh lebih alami dengan ini daripada dengan skema penyimpanan file. Beberapa toko kunci / nilai juga akan memungkinkan Anda untuk melakukan analisis sederhana dari data sesi relatif mudah tetapi kebanyakan tidak akan membuat Anda mendekati apa yang bisa dilakukan SQL.
Saya tidak yakin mengapa Anda mengusulkan bahwa database mungkin lebih dapat diandalkan daripada opsi lain, tetapi saya mendapatkan daya tarik dari database karena aplikasi PHP Anda mungkin sudah memanfaatkannya. Ini berarti Anda tidak menambahkan ketergantungan server lain dan Anda mungkin dapat menggunakan kembali koneksi yang sama yang Anda gunakan untuk mengambil data sesi untuk mendapatkan data pengguna sehingga Anda tidak perlu membuat satu untuk data, satu untuk Memcache, dll. Jika Anda mengindeks tabel dengan baik, itu juga akan melakukan cukup cepat dan memberikan semantik yang cukup sederhana Anda sudah terbiasa dengan menuai sesi lama atau bahkan menganalisis data sesi (saya tidak yakin mengapa Anda ingin dan jika Anda tidak baik, ini mungkin tidak ' sangat penting). Scaling ke skala besar tidak sepele seperti dengan sesuatu seperti Redis,
Saya pikir pilihan ini tidak begitu penting di awal. Setiap pendekatan memiliki tantangan dan kelebihan serta hal-hal yang harus Anda pikirkan. Secara umum, Anda mungkin bisa lolos hanya dengan menggunakan default PHP / kerangka apa pun yang Anda gunakan atau bahkan hanya hal termudah untuk melanjutkan. Jika pilihannya ternyata buruk nantinya, analisis kinerja Anda akan memberi tahu Anda dan Anda akan dipersenjatai dengan data yang Anda butuhkan untuk membuat pilihan yang tepat mengingat sifat spesifik dari lalu lintas yang Anda dapatkan. Di depan, yang dapat Anda miliki adalah spekulasi umum.