Redis (Pelayan Kamus Jauh) ialah sistem storan struktur data berasaskan memori yang ringan, cekap dan mudah digunakan. Ia bukan sahaja pangkalan data storan pasangan nilai kunci berkelajuan tinggi, tetapi juga menyediakan pelbagai struktur data yang fleksibel, seperti rentetan, cincang, senarai, set dan set tersusun, untuk menyokong aplikasi dalam pelbagai senario. Selain itu, Redis juga mempunyai keupayaan pengkomputeran masa nyata yang berkuasa dan boleh membina sistem statistik masa nyata dengan cepat.
Dalam senario aplikasi praktikal, selalunya perlu untuk membina sistem statistik masa nyata. Sebagai contoh, platform e-dagang memerlukan statistik masa nyata tentang data jualan, data operasi dan data pengguna untuk mengoptimumkan strategi operasi. Dalam kes ini, pangkalan data hubungan tradisional tidak lagi dapat memenuhi keperluan masa nyata, jadi Redis digunakan secara meluas dalam bidang pengkomputeran masa nyata.
Artikel ini akan memperkenalkan cara menggunakan Redis untuk membina sistem statistik masa nyata yang mudah melalui contoh kod.
Pertama, kita perlu menyimpan data ke dalam Redis. Memandangkan kami perlu mengira bilangan lawatan pengguna, kami boleh merekodkan bilangan lawatan pengguna dalam koleksi yang ditetapkan, di mana setiap elemen mewakili kaunter akses setiap pengguna.
import redis r = redis.Redis(host='localhost', port=6379, db=0) def record_user_access(user_id): r.sadd('users', user_id) r.incr('user:%s:access_count' % user_id)
Dalam kod di atas, kami menggunakan arahan SADD Redis untuk menambah ID pengguna pada koleksi dan menggunakan arahan INCR untuk menambah kaunter akses pengguna. Seterusnya, kita boleh menggunakan arahan Redis SCARD untuk mendapatkan bilangan pengguna dan arahan SMEMBERS untuk mendapatkan ID semua pengguna.
def get_user_count(): user_count = r.scard('users') return user_count def get_all_users(): users = r.smembers('users') return users
Satu lagi kaedah statistik biasa ialah mengira N pengguna dengan lawatan pengguna tertinggi Ini boleh dilakukan dengan menggunakan arahan ZADD Redis untuk menambah kaunter akses pengguna sebagai skor dan ID pengguna sebagai ahli kepada set yang dipesan. .
def get_top_n_users(n): top_n = r.zrevrangebyscore('access_count', '+inf', '-inf', start=0, num=n) return top_n def record_user_access(user_id): r.sadd('users', user_id) r.zincrby('access_count', user_id, amount=1)
Di sini kami menggunakan arahan ZREVRANGEBYSCORE Redis untuk mendapatkan pengguna N dengan markah tertinggi.
Selain mengira bilangan lawatan pengguna, kami juga boleh menggunakan Redis untuk mengira bilangan lawatan halaman. Simpan kaunter akses halaman dalam jadual cincang Redis, dengan kuncinya ialah URL halaman dan nilainya ialah kaunter akses.
def record_page_view(url): r.hincrby('page_views', url, amount=1) def get_page_view(url): page_view = r.hget('page_views', url) return page_view
Dalam kod di atas, kami menggunakan arahan HINCRBY Redis untuk menambah pembilang halaman, menggunakan URL halaman sebagai kunci, dan menggunakan arahan HGET untuk mendapatkan kaunter akses halaman apabila mendapatkan bilangan lawatan.
Selain kaedah statistik yang diperkenalkan di atas, Redis juga menyokong pelbagai struktur dan arahan data yang fleksibel untuk memenuhi keperluan pelbagai senario. Contohnya, jika anda perlu mengira jejak tingkah laku pengguna, anda boleh menggunakan koleksi tertib Redis untuk merekodkan log tingkah laku pengguna dan menggunakan perintah ZREVRANGE untuk mendapatkan rekod tingkah laku terkini pengguna.
Ringkasnya, Redis, sebagai sistem penyimpanan struktur data berasaskan memori, mempunyai kelebihan cepat, cekap dan fleksibiliti. Ia bukan sahaja boleh digunakan sebagai pangkalan data storan pasangan nilai kunci berkelajuan tinggi, tetapi juga menyokong pelbagai struktur dan arahan data yang fleksibel untuk memenuhi keperluan pelbagai senario pengkomputeran masa nyata.
Atas ialah kandungan terperinci Redis: cepat membina sistem statistik masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!