Rumah >pembangunan bahagian belakang >tutorial php >PHP dan REDIS: Bagaimana untuk mencapai penyimpanan data yang berterusan

PHP dan REDIS: Bagaimana untuk mencapai penyimpanan data yang berterusan

WBOY
WBOYasal
2023-07-21 12:46:531418semak imbas

PHP dan REDIS: Bagaimana untuk mencapai penyimpanan data yang berterusan

Pengenalan:
Dalam proses pembangunan web, kita selalunya perlu menyimpan data secara berterusan. Sebagai sistem storan nilai kunci berprestasi tinggi, Redis dapat memenuhi keperluan kami dengan baik. Artikel ini akan memperkenalkan cara menggunakan PHP dan Redis untuk mencapai penyimpanan data yang berterusan.

1. Pemasangan dan konfigurasi Redis

  1. Muat turun dan pasang Redis:
    Pertama, anda perlu memuat turun dan memasang Redis dari tapak web rasmi Redis. Langkah pemasangan khusus tidak akan diterangkan di sini.
  2. Mengkonfigurasi Redis:
    Selepas pemasangan selesai, anda perlu memasukkan fail konfigurasi Redis (redis.conf) untuk melaksanakan beberapa konfigurasi asas.

    a) Buka fail redis.conf

    vim /etc/redis/redis.conf

    b) Konfigurasi kata laluan Redis
    Cari dan ubah suai parameter "requirepass" dan tetapkannya kepada kata laluan yang anda mahu:

    requirepass your_password

    c) Simpan perubahan dan tutup fail.

  3. Mulakan Redis:
    Masukkan arahan berikut dalam terminal untuk memulakan Redis:

    redis-server

2. Gunakan PHP untuk menyambung ke pelayan Redis
Seterusnya, anda perlu menggunakan PHP untuk menyambung ke pelayan Redis dan melaksanakan membaca dan memproses data dalam storan kod.

  1. Pasang sambungan Redis:
    Untuk menggunakan Redis dalam PHP, anda perlu memasang sambungan Redis terlebih dahulu. Ia boleh dipasang melalui kompilasi pecl atau kod sumber.
  2. Sambung ke pelayan Redis:
    Pertama, anda perlu menggunakan kelas Redis dalam kod untuk membuat instantiate objek Redis dan menyambung ke pelayan Redis: Redis类来实例化Redis对象,并连接到Redis服务器:

    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('your_password'); // 如果设置了Redis密码,需要进行身份验证
  3. 存储数据到Redis:
    在Redis中,我们可以使用set方法将数据存储到指定的key中。以下是一个示例代码:

    $redis->set('my_key', 'my_value');
  4. 从Redis中读取数据:
    可以使用get方法从Redis中读取指定的key的值。以下是一个示例代码:

    $value = $redis->get('my_key');
    echo $value; // 输出:my_value
  5. 存储复杂数据类型:
    Redis不仅可以存储简单的字符串值,还可以存储复杂的数据类型,比如数组、对象等。我们可以使用serialize函数将复杂数据类型序列化成字符串,然后再存储到Redis中。示例代码如下:

    $data = ['name' => 'John', 'age' => 25];
    $redis->set('my_data', serialize($data));

    在需要取回数据时,可以使用unserialize函数将存储的字符串反序列化为原始数据类型。示例代码如下:

    $data = unserialize($redis->get('my_data'));
    print_r($data); // 输出:Array ( [name] => John [age] => 25 )

三、实现数据的持久化存储
上面介绍的是将数据存储到Redis中,并在代码中读取出来。但是当Redis服务器关闭或重启后,数据将会丢失。为了实现数据的持久化存储,我们可以使用Redis的RDB和AOF两种机制。

  1. RDB持久化(快照持久化):
    RDB持久化是Redis默认的持久化机制。它会根据一定的时间间隔生成快照文件,将数据以二进制格式保存到磁盘上。在Redis重新启动时,可以从快照文件中还原数据。

    a) 配置RDB持久化:
    打开redis.conf文件并找到以下配置:

    save 900 1
    save 300 10
    save 60 10000

    这些配置表示:在900秒之后,如果至少有1个key发生了变化,则生成一个RDB文件;在300秒之后,如果至少有10个key发生了变化,则生成一个RDB文件;在60秒之后,如果至少有10000个key发生了变化,则生成一个RDB文件。

    b) 启用RDB持久化:
    将以下配置项的注释符号去掉,即可启用RDB持久化:

    save 900 1
    save 300 10
    save 60 10000

    c) 保存并关闭配置文件。

    d) 重启Redis服务器。

    RDB持久化可以将Redis的内存数据保存到磁盘上,但是在Redis重启后,只能恢复到最后一次生成的RDB文件时的状态。

  2. AOF持久化(追加文件持久化):
    AOF持久化会将Redis服务器收到的每个写命令追加到AOF文件的末尾。当Redis服务器重新启动时,它会重新执行AOF文件中的所有写命令,从而还原数据。

    a) 配置AOF持久化:
    打开redis.conf文件并找到以下配置:

    appendonly no
    appendfilename "appendonly.aof"

    appendonly配置项的值修改为yesrrreee

    Simpan data ke Redis :

    Dalam Redis , kita boleh menggunakan kaedah set untuk menyimpan data ke dalam kunci yang ditentukan. Berikut ialah contoh kod:

    rrreee

Membaca data daripada Redis:
Anda boleh menggunakan kaedah get untuk membaca nilai kunci yang ditentukan daripada Redis. Berikut ialah kod sampel:

rrreee

    Menyimpan jenis data yang kompleks:
  • Redis bukan sahaja boleh menyimpan nilai rentetan ringkas, tetapi juga jenis data yang kompleks, seperti tatasusunan, objek, dsb. Kita boleh menggunakan fungsi serialize untuk menyerikan jenis data kompleks ke dalam rentetan dan kemudian menyimpannya dalam Redis. Kod sampel adalah seperti berikut:
  • rrreee
  • Apabila anda perlu mendapatkan semula data, anda boleh menggunakan fungsi nyahsiri untuk menyahsiri rentetan yang disimpan ke dalam jenis data asal. Kod sampel adalah seperti berikut:
  • rrreee
🎜🎜 3. Laksanakan penyimpanan data yang berterusan 🎜Penerangan di atas adalah untuk menyimpan data dalam Redis dan membacanya dalam kod. Tetapi apabila pelayan Redis ditutup atau dimulakan semula, data akan hilang. Untuk mencapai penyimpanan data yang berterusan, kami boleh menggunakan mekanisme RDB dan AOF Redis. 🎜🎜🎜🎜Kegigihan RDB (ketekalan syot kilat): 🎜Kegigihan RDB ialah mekanisme kegigihan lalai Redis. Ia menjana fail syot kilat berdasarkan selang masa tertentu dan menyimpan data ke cakera dalam format binari. Pada permulaan semula Redis, data boleh dipulihkan daripada fail syot kilat. 🎜🎜a) Konfigurasikan kegigihan RDB: 🎜 Buka fail redis.conf dan cari konfigurasi berikut: 🎜rrreee🎜Konfigurasi ini bermaksud: selepas 900 saat, jika sekurang-kurangnya 1 kekunci berubah, fail RDB dijana selepas 300 Selepas 60 saat , jika sekurang-kurangnya 10 kekunci telah berubah, fail RDB akan dijana selepas 60 saat, jika sekurang-kurangnya 10,000 kekunci telah berubah, fail RDB akan dijana. 🎜🎜b) Dayakan kegigihan RDB: 🎜 Alih keluar simbol ulasan daripada item konfigurasi berikut untuk mendayakan kegigihan RDB: 🎜rrreee🎜c) Simpan dan tutup fail konfigurasi. 🎜🎜d) Mulakan semula pelayan Redis. 🎜🎜Kegigihan RDB boleh menyimpan data memori Redis ke cakera, tetapi selepas Redis dimulakan semula, ia hanya boleh dipulihkan kepada keadaan fail RDB yang dijana terakhir. 🎜🎜🎜🎜Kegigihan AOF (tambah kegigihan fail): 🎜Kegigihan AOF akan menambahkan setiap arahan tulis yang diterima oleh pelayan Redis ke penghujung fail AOF. Apabila pelayan Redis dimulakan semula, ia melaksanakan semula semua arahan tulis dalam fail AOF, dengan itu memulihkan data. 🎜🎜a) Konfigurasikan kegigihan AOF: 🎜 Buka fail redis.conf dan cari konfigurasi berikut: 🎜rrreee🎜 Tukar nilai item konfigurasi appendonly kepada yes untuk mendayakan ia AOF kegigihan. 🎜🎜b) Simpan dan tutup fail konfigurasi. 🎜🎜c) Mulakan semula pelayan Redis. 🎜🎜🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan cara menggunakan PHP dan Redis untuk mencapai penyimpanan data yang berterusan. Dengan mengkonfigurasi mekanisme kegigihan RDB dan AOF Redis, anda boleh memastikan bahawa data masih tersedia selepas pelayan Redis dimulakan semula. Pada masa yang sama, melalui penjelasan kod sampel, pembaca boleh mempunyai pemahaman yang lebih jelas tentang cara menggunakan PHP dan Redis untuk penyimpanan data dalam projek sebenar. 🎜🎜Rujukan: 🎜🎜🎜Tapak web rasmi Redis: https://redis.io/🎜🎜Kod sumber Redis: https://github.com/redis/redis🎜🎜

Atas ialah kandungan terperinci PHP dan REDIS: Bagaimana untuk mencapai penyimpanan data yang berterusan. 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