Rumah >pangkalan data >Redis >Redis: karya penyelesaian storan data berprestasi tinggi
Redis, nama penuh Pelayan Kamus Jauh, ialah penyelesaian storan pangkalan data nilai kunci berprestasi tinggi sumber terbuka, dibangunkan oleh Salvatore Sanfilippo, yang boleh menyokong pelbagai struktur data, seperti rentetan, senarai, jadual cincang , set dan diperintahkan berkumpul. Dalam bidang Internet, berhadapan dengan trafik yang besar dan permintaan baca dan tulis serentak yang tinggi, Redis telah menjadi penyelesaian storan data yang mewakili dengan prestasi yang baik dan konfigurasi yang fleksibel.
Redis mempunyai prestasi yang baik berbanding pangkalan data hubungan biasa yang lain (seperti MySQL), terutamanya disebabkan oleh kaedah penyimpanan dan pemprosesan datanya yang berbeza. Redis menggunakan memori untuk menyimpan data, manakala pangkalan data hubungan seperti MySQL menyimpan data pada cakera keras. Memandangkan kelajuan baca dan tulis memori jauh lebih pantas daripada operasi IO cakera keras, Redis boleh memberikan prestasi baca dan tulis yang cekap. Selain itu, Redis juga menyokong operasi berbilang benang, menggunakan sepenuhnya ciri berbilang teras CPU Ia juga menyokong replikasi tuan-hamba dan mekanisme Sentinel untuk mencapai ketersediaan data yang tinggi dan kegagalan automatik.
Di bawah, kami akan menumpukan pada lima struktur data Redis dan pelaksanaan kod khusus mereka:
1 Rentetan
Dalam Redis, jenis rentetan ialah jenis data yang paling biasa digunakan dan paling ringkas, menyokong Operasi rentetan umum, seperti. masukkan, padam, ubah suai, dsb. Jenis rentetan juga menyokong beberapa operasi khas, seperti operasi bit, peningkatan, penurunan, dsb. Berikut ialah kod untuk melaksanakan pembilang:
# 连接Redis import redis r = redis.Redis(host='localhost', port=6379, db=0) # 递增计数器 r.set('counter', 0) r.incr('counter') # 获取计数器的值 counter_val = r.get('counter') print(counter_val)
2 Senarai
Jenis senarai dalam Redis boleh digunakan untuk menyimpan berbilang nilai, seperti tatasusunan, senarai, dll. Senarai juga menyokong operasi asas pada elemen, seperti menambah dan memadam elemen pada senarai, mendapatkan panjang senarai, dsb. Berikut ialah contoh senarai ringkas:
# 连接Redis import redis r = redis.Redis(host='localhost', port=6379, db=0) # 向列表中添加元素 r.lpush('mylist', 1) r.lpush('mylist', 2) r.lpush('mylist', 3) # 获取列表的所有元素 mylist_vals = r.lrange('mylist', 0, -1) print(mylist_vals)
3 Jadual cincang
Struktur data jadual cincang juga merupakan struktur data yang kerap digunakan dalam Redis. Apa yang disimpan dalam jadual cincang ialah set pasangan nilai kunci yang menyimpan data. Jadual cincang juga menyokong operasi asas seperti mendapatkan nilai melalui kunci, mengubah suai nilai dan memadamkan nilai kunci. Berikut ialah contoh jadual cincang:
# 连接Redis import redis r = redis.Redis(host='localhost', port=6379, db=0) # 向哈希表中添加key-value r.hset('myhash', 'name', 'jack') r.hset('myhash', 'age', 20) r.hset('myhash', 'sex', 'male') # 获取哈希表的某个key-value name_val = r.hget('myhash', 'name') print(name_val) # 获取哈希表所有的key-value all_vals = r.hgetall('myhash') print(all_vals)
4 Set
Set dalam Redis adalah serupa dengan set dalam Python dan boleh menyimpan berbilang elemen tidak tertib. Menetapkan penambahan sokongan, pemadaman, carian dan operasi seperti persilangan, penyatuan dan perbezaan elemen set. Berikut ialah contoh set:
# 连接Redis import redis r = redis.Redis(host='localhost', port=6379, db=0) # 向集合中添加元素 r.sadd('myset', 1) r.sadd('myset', 2) r.sadd('myset', 3) # 获取集合中所有元素 myset_vals = r.smembers('myset') print(myset_vals)
5 Set tersusun
Set tersusun adalah serupa dengan set dan juga terdiri daripada pelbagai elemen. Tetapi dalam set tersusun, setiap elemen mempunyai skor yang berkaitan, dan elemen boleh diisih mengikut skor. Set yang diisih juga menyokong penambahan, pemadaman, carian dan operasi seperti persilangan, penyatuan dan perbezaan elemen. Berikut ialah contoh set tersusun:
# 连接Redis import redis r = redis.Redis(host='localhost', port=6379, db=0) # 向有序集合中添加元素 r.zadd('mysortedset', {'a': 1, 'b': 2, 'c': 3}) # 按照元素分数的升序获取元素 all_vals = r.zrange('mysortedset', 0, -1) print(all_vals)
Lima struktur data di atas ialah struktur data yang paling biasa digunakan dalam Redis Ia berkemungkinan besar digunakan dalam pembangunan sebenar. Pembangun perlu Gunakannya secara fleksibel mengikut senario aplikasi tertentu. Sudah tentu, sebagai tambahan kepada lima struktur data di atas, Redis juga menyokong beberapa struktur data lain, seperti bitmap, HyperLogLogs, dll. Struktur data ini juga sangat berguna dalam situasi tertentu tertentu.
Ringkasnya, Redis telah menjadi penyelesaian storan data berprestasi tinggi yang popular dengan memanfaatkan sepenuhnya memori, menyokong pembacaan dan penulisan berbilang benang, menyediakan pelbagai struktur data dan senario aplikasi yang kaya.
Atas ialah kandungan terperinci Redis: karya penyelesaian storan data berprestasi tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!