Redis: Alat yang berkuasa untuk memproses data tingkah laku pengguna dengan cekap, contoh kod khusus diperlukan
Dengan perkembangan pesat teknologi Internet dan kebangkitan teknologi baru muncul seperti Internet mudah alih, Internet of Things dan kecerdasan buatan, jumlah data telah mencapai tahap yang menakjubkan, jadi keperluan untuk keupayaan pemprosesan data semakin tinggi dan lebih tinggi. Redis ialah sistem cache Ia telah digunakan secara meluas dalam aplikasi peringkat perusahaan kerana kecekapannya yang tinggi, kesederhanaan, kestabilan, dan kebolehskalaan yang baik Senario aplikasi yang paling penting ialah pemprosesan data tingkah laku pengguna of Redis. Senario aplikasi, kelebihan dan kekurangan, kaedah penggunaan khusus dan contoh kod diperkenalkan secara terperinci.
1. Senario Aplikasi Redis
Redis mempunyai pelbagai senario aplikasi, dan amat sesuai untuk memproses dan menganalisis data tingkah laku pengguna, data ini tidak memerlukan penyimpanan jangka panjang, tetapi masih memerlukan pembacaan dan penulisan yang cekap dan pantas pemprosesan data, seperti:
1. Kaunter: Contohnya, mengira PV tapak web, UV, dll. boleh dikendalikan dengan lebih pantas dan lebih mudah dengan Redis.
2 Kedudukan: Contohnya, kedudukan artikel popular di laman web, kedudukan artikel dengan komen terbanyak, dsb.
3. Barisan Mesej: Senarai Redis, pub/sub dan fungsi lain sangat sesuai untuk melaksanakan baris gilir mesej.
4 Set dan zset antara jenis data asas sering digunakan untuk pengiraan label dan statistik kedudukan.
2. Kelebihan dan Kelemahan Redis
1. Kelebihan: Redis mempunyai prestasi yang sangat baik, mempunyai keupayaan membaca dan menulis yang pantas, dan menyokong pelbagai jenis data, jadi ia boleh mengendalikan data tingkah laku pengguna dengan baik serba boleh dan sesuai untuk digunakan dalam senario konkurensi tinggi. Selain itu, Redis juga menyokong replikasi tuan-hamba, ketekunan, skrip Lua dan fungsi lain untuk memastikan kestabilan data, kebolehskalaan dan tahap penyesuaian yang tinggi.
2. Kelemahan: Kelemahan utama Redis ialah data tidak mempunyai keupayaan penyimpanan jangka panjang dan tidak menyokong transaksi, jadi ia tidak dapat menggantikan pangkalan data hubungan sepenuhnya. Di samping itu, memandangkan Redis menukar data ke cakera apabila ingatan rendah, kemerosotan prestasi mungkin berlaku.
3. Penggunaan khusus Redis
1 Pemasangan Redis
Redis boleh dipasang pada pelbagai sistem pengendalian, tetapi untuk kemudahan dalam artikel ini, kami menggunakan sistem Ubuntu sebagai contoh untuk memasang Redis.
Mula-mula anda perlu memasang kebergantungan berikut:
sudo apt-get install -y build-essential tcl
Kemudian muat turun versi terkini Redis stable dari tapak web rasmi (di sini kami mengambil v5.0.8 sebagai contoh):
wget http:// download.redis.io/releases/redis-5.0.8.tar.gz
Nyahzip:
tar xzf redis-5.0.8.tar.gz
Masukkan direktori nyahmampat:
redis-5.0. 8
Compile:
make
Selepas penyusunan selesai, jalankan arahan berikut untuk memasang:
sudo make install
Setelah pemasangan selesai, anda boleh menjalankan perintah redis-server untuk memulakan:
redis-server
Secara lalai, Redis akan mendengar pada port 6379. Anda boleh menggunakan arahan berikut untuk menguji:
redis-cli ping
Jika PONG dikeluarkan, ini bermakna Redis telah berjaya dimulakan.
2.Jenis data Redis
Redis menyokong berbilang jenis data, termasuk rentetan, cincang, senarai, set, zset, dsb.
1) Jenis rentetan
Jenis data rentetan ialah jenis data yang paling ringkas dan selalunya digunakan untuk menyimpan data nilai kunci ringkas, seperti rentetan, integer, nombor titik terapung, dsb.
Jenis rentetan Redis boleh menetapkan masa tamat tempoh. Cara menggunakan:
tetapkan kunci saya "hello"
Tamatkan kunci saya 10
2) Jenis cincang
Jenis data cincang boleh menyimpan berbilang pasangan nilai kunci Setiap pasangan nilai kunci mempunyai kunci dan nilai Jenis cincang sesuai untuk menyimpan data berstruktur, seperti maklumat pengguna, maklumat produk, dsb .
Penggunaan:
Tetapkan nilai kunci
Dapatkan nilai
3) Jenis senarai
Siri jenis data yang boleh disimpan, yang mana senarai jenis elemen boleh disimpan Barisan gilir menyokong penambahan dan muncul elemen dari kedua-dua hujung, seperti baris gilir mesej, baris gilir tugas, dsb. Penggunaan:
Tambah elemen dari hujung kiri
Tambah elemen dari hujung kanan
Dapatkan panjang senarai
elemen hujung kiri
lpop mylist
rpop mylist
4) jenis set
set jenis data ialah set elemen tidak berulang termasuk teg pengguna, teg acara, dsb. Penggunaan:
sadd myset "a"
scard myset
sismember myset "a"
Get semua elemen setzadd myzset 2 "b"
zrange myzset 0 1
3.Fungsi teras Redis
Rediss menyediakan pelbagai fungsi teras , kami memperkenalkannya secara berasingan di bawah.
1) Kaunter
kaunter Redis sangat sesuai untuk mengira PV, UV, dan lain-lain. Gunakan arahan berikut:
get counter
2) Senarai ranking#🎜🎜🎜🎜🎜 jenis sangat Sesuai untuk melaksanakan ranking, gunakan arahan berikut:
Add element
zadd myranking 1000 "user1"
3) Terbit dan langgan
Publisher:
Connect Redis
redis-cli
Publish message#🎜#Publish message#🎜 mychannel "Hello Redis"
Connect Redis
subscribe mychannel
4) Skrip Lua
Laksanakan skrip Lua
4. Contoh kod redis # 🎜🎜#
Mari kita ambil fungsi ulasan artikel sebagai contoh untuk memperkenalkan cara menggunakan Redis untuk menyimpan dan memproses data tingkah laku pengguna. 1. Permulaan Redis Untuk menggunakan bahasa Python, anda perlu memasang modul redis-py terlebih dahulu: pip install redis#🎜 🎜##🎜 🎜#Kemudian kita perlu memulakan Redis: import redisredis_client = redis.Redis(host='localhost', port=6379, db=0)#🎜🎜 ##🎜 🎜#Jika anda perlu menggunakan fungsi terbitkan dan langgan Redis, anda perlu menggunakan kelas Redis:
redis_pubsub = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True )
pubsub = redis_pubsub.pubsub(ignore_subscribe_messages=True)2. dan UV artikel. Kodnya adalah seperti berikut: Tingkatkan kaunter PVredis_client.incr('artikel:101:pv')#🎜🎜 Tingkatkan pembilang UV
# 🎜🎜#redis_client.pfadd('artikel:101:uv', 'user1', 'user2', 'user2', 'user3')
Dapatkan nilai of PV counter
#🎜🎜.#pf_countclient ('artikel:101:uv')#🎜🎜 #
3 Penggunaan terbitan dan langgan
Gunakan fungsi terbitkan dan langgan Redis untuk merealisasikan pemberitahuan masa nyata ulasan artikel.
Publisher:
Subscriber:#🎜##🎜 🎜🎜#class CommentSubscriber:
def __init__(self): self.redis_pubsub = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True) self.pubsub = self.redis_pubsub.pubsub(ignore_subscribe_messages=True) self.pubsub.subscribe(['article:101:comment']) self.is_subscribed = True def listen(self): while self.is_subscribed: try: for item in self.pubsub.listen(): if not self.is_subscribed: break print(item) except redis.ConnectionError: time.sleep(1) def stop(self): self.is_subscribed = False self.pubsub.unsubscribe(['article:101:comment'])
Atas ialah kandungan terperinci Redis: alat yang berkuasa untuk memproses data tingkah laku pengguna dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!