Mengapa anda perlu menggunakan sql sebagai kunci... dan setiap kali anda mengepam db, anda boleh mengubah fikiran anda Jika terdapat jadual dengan produk dan kunci utama ialah id, anda boleh membuat cache dengan butiran utama: id produk, dan letakkan ini Rekod baris digunakan sebagai nilai, dan jenis data ialah cincang atau rentetan. Kadangkala apabila perniagaan anda perlu menyemak maklumat produk tertentu berdasarkan kunci utama, anda mula-mula pergi ke redis untuk melihat jika terdapat cache butiran: kunci utama Kadangkala, anda hanya mengambil cache secara langsung cache, anda menyemak pangkalan data dan menyimpan hasil carian. Selain itu, apabila rekod berubah, anda boleh memadam cache secara terus atau mengemas kini cache. Ini hanyalah contoh yang sangat mudah jenis data Redis sangat kaya dan boleh digunakan dengan sangat gembira jika digunakan dengan betul. Selain itu, dalam contoh di atas, anda boleh menetapkan tempoh sah untuk setiap cache, seperti satu minggu, bergantung pada perniagaan anda. Secara umumnya, pengguna jarang melihat kandungan lama, jadi selepas ia tamat tempoh dan tiada siapa yang melayarinya, ia tidak akan dibina semula Ini memastikan bahawa redis anda sentiasa mempunyai data panas. Ia bukan hanya sekumpulan data lama saya bosan menaip pada telefon saya. Sila suka jika ia berguna
Maksud caching ialah untuk menyimpan data popular, seperti menyimpan data yang kerap digunakan oleh pangkalan data dalam redis, supaya anda tidak perlu menanyakan pangkalan data setiap kali.
Masalah yang dihadapi oleh poster ialah cara menyimpan data dalam cache konsisten dengan data dalam pangkalan data. Seperti 表如果有数据修改添加删除,flushDB() yang dinyatakan di atas, adalah tidak digalakkan.
Pengendalian data cache sebenarnya dipermudahkan kepada membaca dan menulis
Apabila aplikasi anda bertanya redis, jika ia tidak ditemui, anda perlu menyemak pangkalan data pada masa ini dan menyimpan data yang ditemui dalam redis. Apabila data dalam pangkalan data ditukar, 数据增删改对redis都有操作后再对数据库操作 yang dinyatakan di atas sebenarnya tidak digalakkan Aplikasi itu harus mengubah suai pangkalan data dahulu, dan kemudian mengemas kini semula selepas berjaya. Apakah yang perlu saya lakukan jika saya mengemas kini redis dahulu, tetapi kemas kini kepada pangkalan data gagal? Tidakkah redis menyimpan data kotor?
Selain itu, data dalam cache boleh menetapkan masa tamat tempoh (masa tamat tempoh, semak pangkalan data sekali lagi dan kemas kini data (walaupun data tidak berubah sama sekali). , sekurang-kurangnya mengurangkan beban pada pangkalan data.
Melihat kepada tujuan tema, terdapat cara untuk menggunakan redis sebagai sandaran data pangkalan data. Itu tidak semestinya menggunakan cache redis (mungkin anda harus mempertimbangkan sandaran master-slave pangkalan data).
Bagi penyelesaian yang anda nyatakan, melihat huraian topik, ia tidak memerlukan penyelesaian (saya rasa konfigurasi ketersediaan tinggi dipanggil penyelesaian apabila mempertimbangkan ketekalan data, dsb.). Ini sebenarnya logik kod, ia bergantung pada cara kod itu ditulis.
Apabila anda melaksanakan sistem caching, anda mesti mempertimbangkan tiga soalan ini (soalan ketiga adalah pilihan)
Pemuatan dalam cache
Pembatalan cache
Kemas kini dalam cache (pilihan)
Soalan 1:
Apa yang anda perlu lakukan untuk memuatkan cache adalah sangat mudah. Untuk sebarang pertanyaan, tanya cache dahulu. Jika tiada hit dalam cache, kemudian semak pangkalan data.
Soalan 2:
Untuk membatalkan cache, anda hanya perlu ingat untuk memadam cache apabila sebarang pengubahsuaian (kemas kini, padam) dibuat pada pangkalan data
Soalan 3:
Apabila data dikemas kini, cache tidak akan menjadi tidak sah dan dipadamkan, tetapi cache akan dikemas kini Operasi pilihan ini boleh membantu anda mencapai kesan bahawa cache sentiasa terkini.
Mengenai soalan 3, terdapat masalah lain Jangan kemas kini cache sebelum pangkalan data berjaya dikemas kini. Pada masa ini, jika cache anda tidak dipulihkan, data kotor akan muncul
Mengapa anda perlu menggunakan sql sebagai kunci... dan setiap kali anda mengepam db, anda boleh mengubah fikiran anda Jika terdapat jadual dengan produk dan kunci utama ialah id, anda boleh membuat cache dengan butiran utama: id produk, dan letakkan ini Rekod baris digunakan sebagai nilai, dan jenis data ialah cincang atau rentetan. Kadangkala apabila perniagaan anda perlu menyemak maklumat produk tertentu berdasarkan kunci utama, anda mula-mula pergi ke redis untuk melihat jika terdapat cache butiran: kunci utama Kadangkala, anda hanya mengambil cache secara langsung cache, anda menyemak pangkalan data dan menyimpan hasil carian. Selain itu, apabila rekod berubah, anda boleh memadam cache secara terus atau mengemas kini cache.
Ini hanyalah contoh yang sangat mudah jenis data Redis sangat kaya dan boleh digunakan dengan sangat gembira jika digunakan dengan betul. Selain itu, dalam contoh di atas, anda boleh menetapkan tempoh sah untuk setiap cache, seperti satu minggu, bergantung pada perniagaan anda. Secara umumnya, pengguna jarang melihat kandungan lama, jadi selepas ia tamat tempoh dan tiada siapa yang melayarinya, ia tidak akan dibina semula Ini memastikan bahawa redis anda sentiasa mempunyai data panas. Ia bukan hanya sekumpulan data lama saya bosan menaip pada telefon saya. Sila suka jika ia berguna
Maksud caching ialah untuk menyimpan data popular, seperti menyimpan data yang kerap digunakan oleh pangkalan data dalam redis, supaya anda tidak perlu menanyakan pangkalan data setiap kali.
Masalah yang dihadapi oleh poster ialah cara menyimpan data dalam cache konsisten dengan data dalam pangkalan data.
Seperti
表如果有数据修改添加删除,flushDB()
yang dinyatakan di atas, adalah tidak digalakkan.Pengendalian data cache sebenarnya dipermudahkan kepada membaca dan menulis
Apabila aplikasi anda bertanya redis, jika ia tidak ditemui, anda perlu menyemak pangkalan data pada masa ini dan menyimpan data yang ditemui dalam redis.
Apabila data dalam pangkalan data ditukar,
数据增删改对redis都有操作后再对数据库操作
yang dinyatakan di atas sebenarnya tidak digalakkan Aplikasi itu harus mengubah suai pangkalan data dahulu, dan kemudian mengemas kini semula selepas berjaya. Apakah yang perlu saya lakukan jika saya mengemas kini redis dahulu, tetapi kemas kini kepada pangkalan data gagal? Tidakkah redis menyimpan data kotor?Selain itu, data dalam cache boleh menetapkan masa tamat tempoh (masa tamat tempoh, semak pangkalan data sekali lagi dan kemas kini data (walaupun data tidak berubah sama sekali). , sekurang-kurangnya mengurangkan beban pada pangkalan data.
Melihat kepada tujuan tema, terdapat cara untuk menggunakan redis sebagai sandaran data pangkalan data. Itu tidak semestinya menggunakan cache redis (mungkin anda harus mempertimbangkan sandaran master-slave pangkalan data).
Bagi penyelesaian yang anda nyatakan, melihat huraian topik, ia tidak memerlukan penyelesaian (saya rasa konfigurasi ketersediaan tinggi dipanggil penyelesaian apabila mempertimbangkan ketekalan data, dsb.).
Ini sebenarnya logik kod, ia bergantung pada cara kod itu ditulis.
Spring mempunyai pemalam redis Ia adalah lebih mudah untuk menggunakan ehcache dan pemalam spring untuk projek kecil.
Apabila anda melaksanakan sistem caching, anda mesti mempertimbangkan tiga soalan ini (soalan ketiga adalah pilihan)
Pemuatan dalam cache
Pembatalan cache
Kemas kini dalam cache (pilihan)
Soalan 1:
Apa yang anda perlu lakukan untuk memuatkan cache adalah sangat mudah. Untuk sebarang pertanyaan, tanya cache dahulu. Jika tiada hit dalam cache, kemudian semak pangkalan data.
Soalan 2:
Untuk membatalkan cache, anda hanya perlu ingat untuk memadam cache apabila sebarang pengubahsuaian (kemas kini, padam) dibuat pada pangkalan data
Soalan 3:
Apabila data dikemas kini, cache tidak akan menjadi tidak sah dan dipadamkan, tetapi cache akan dikemas kini Operasi pilihan ini boleh membantu anda mencapai kesan bahawa cache sentiasa terkini.
Mengenai soalan 3, terdapat masalah lain Jangan kemas kini cache sebelum pangkalan data berjaya dikemas kini. Pada masa ini, jika cache anda tidak dipulihkan, data kotor akan muncul
mybatis-redis ada penyelesaiannya, boleh rujuk https://github.com/mybatis/redis-cache
telah melaksanakan
@Cacheable
dan digunakan dalam kaedah lapisanservice
ataudao
untuk memintas dan terus pergi keredis
untuk mendapatkan data.