Rumah  >  Artikel  >  pangkalan data  >  Redis: alat yang berkuasa untuk memproses data tingkah laku pengguna dengan cekap

Redis: alat yang berkuasa untuk memproses data tingkah laku pengguna dengan cekap

王林
王林asal
2023-11-07 09:51:271217semak imbas

Redis: alat yang berkuasa untuk memproses data tingkah laku pengguna dengan cekap

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 nilai kunci

tetapkan kunci saya "hello"

Tetapkan masa tamat tempoh

Tamatkan kunci saya 10

Dapatkan nilai kunci saya.

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

hset userinfo uid 1001

Dapatkan nilai

hget userinfo uid

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

lpush mylist "a"

Tambah elemen dari hujung kanan

rpush mylist "b"

Dapatkan panjang senarai

llen mylist

elemen hujung kiri

lpop mylist

Elemen pop dari hujung kanan

rpop mylist

4) jenis set

set jenis data ialah set elemen tidak berulang termasuk teg pengguna, teg acara, dsb. Penggunaan:

Tambah elemen pada set

sadd myset "a"

Dapatkan bilangan elemen dalam set

scard myset

Nilai sama ada elemen itu wujud

sismember myset "a"

Get semua elemen set

smembers myset

5) jenis zset

Jenis data zset ialah set elemen tertib senario termasuk kedudukan, senarai popular, dsb. Elemen zset memerlukan skor untuk diisih. Semakin tinggi skor, semakin tinggi skor. Penggunaan:

Tambah elemen pada zset

zadd myzset 1 "a"

zadd myzset 2 "b"

Dapatkan skor elemen

zscore myzset "a"

Dapatkan ranking

Dapatkan n elemen pertama

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:

Increase counter#🎜 🎜## 🎜🎜#incr mycounter

get counter

get mycounter

2) Senarai ranking#🎜🎜🎜🎜🎜 jenis sangat Sesuai untuk melaksanakan ranking, gunakan arahan berikut:

Add element

zadd myranking 1000 "user1"

Get rankings#🎜#Get rankings#🎜 ##🎜 🎜#zrevrange myranking 0 10 withscores

3) Terbit dan langgan

Fungsi pub/sub Redis sangat sesuai untuk push mesej, dsb.

Publisher:

Connect Redis

redis-cli

Publish message#🎜#Publish message#🎜 mychannel "Hello Redis"

Subscriber:

Connect Redis

redis-cli

##🎜🎜🎜🎜🎜🎜🎜

subscribe mychannel

4) Skrip Lua

Redis menyokong skrip Lua, yang boleh digunakan untuk melaksanakan logik yang lebih kompleks.

Laksanakan skrip Lua

eval "return redis.call('get','mykey')" 0

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 redis

redis_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 PV

redis_client.incr('artikel:101:pv')

#🎜🎜 Tingkatkan pembilang UV

# 🎜🎜#redis_client.pfadd('artikel:101:uv', 'user1', 'user2', 'user2', 'user3')


Dapatkan nilai of PV counter

#🎜 🎜#redis_client.get('article:101:pv')

Dapatkan nilai anggaran kaunter UV

#🎜🎜.#pf_countclient ('artikel:101:uv')#🎜🎜 #
3 Penggunaan terbitan dan langgan

Gunakan fungsi terbitkan dan langgan Redis untuk merealisasikan pemberitahuan masa nyata ulasan artikel.

Publisher:

redis_client.publish('article:101:comment', 'new comment')

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'])

Artikel ini bertujuan untuk memperkenalkan cara Redis boleh memproses data tingkah laku pengguna dengan cekap, terutamanya daripada senario aplikasi, kelebihan dan kekurangan, kaedah penggunaan khusus dan contoh kod Redis. Melalui mengkaji artikel ini, saya percaya bahawa semua orang mempunyai pemahaman yang lebih mendalam tentang Redis. Saya berharap anda boleh menggunakan Redis dengan lebih baik untuk memproses data tingkah laku pengguna dalam kerja masa hadapan anda, supaya dapat memberi perkhidmatan yang lebih baik kepada pengguna kami.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn