Jadual Kandungan
Redis基本数据结构与PHP实现
Redis配置与连接
Redis键(Key)
Redis 字符串(String)
Redis 哈希(Hash)
Redis 列表(List)
Redis集合(Set)
Redis有序集合(sorted set)
Redis HyperLogLog
Rumah pembangunan bahagian belakang tutorial php PHP实现Redis基本数据结构

PHP实现Redis基本数据结构

Jul 04, 2018 pm 05:42 PM

这篇文章主要介绍了关于PHP实现Redis基本数据结构,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

Redis基本数据结构与PHP实现


  • Redis(REmote DIctionary Server)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

  • Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),列表(list),集合(Set),和有序集合(sorted sets)等类型

Redis配置与连接

1

2

3

4

5

6

7

8

9

10

// Redis.php

return [

'host' => '127.0.0.1',

'port' => '6379'

];

 

// RedisTest.php

$redis = new redis();

$redisConf = include 'Redis.php';

$redis->connect($redisConf['host'], $redisConf['port']);

Salin selepas log masuk

Redis键(Key)

1

2

3

// redis key操作

$redis->exists($key); // 判断key值是否存在

$redis->expire($key, 10); // 设置key在10秒后过期

Salin selepas log masuk

Redis 字符串(String)

1

2

3

4

5

6

7

8

// redis string 字符串

$redis->set($key, $val);

$redis->incr($key); // key值+1,除非val是整数,否则函数执行失败

$redis->decr($key); // key值-1,同上

$redis->append($key, "ue"); // 追加key值内容

$redis->strlen($key); // 返回key值的长度

// 当第一次设置key值后,key值的数据类型就不能改变了。

$redis->del($key); // 删除key值

Salin selepas log masuk

Redis 哈希(Hash)

  • Redis Hash是一个string类型的field和value的映射表,hash特别适合用于存储对象

  • Redis中每个hash可以存储2^(32)-1(40多亿)个键值对

1

2

3

4

5

6

7

8

9

//redis hash 哈希

$redis->hset($key, 'field1', 'val1'); // 设置一个key-value键值对

$redis->hmset($key, array('field2'=>'val2', 'field3'=>'val3')); // 设置多个k-v键值对

$redis->hget($key, 'field2'); // 获取hash其中的一个键值

$redis->hmget($key, array('field2', 'field1')); // 获取hash的多个键值

$redis->hgetall($key); // 获取hash中所有的键值对

$redis->hlen($key); // 获取hash中键值对的个数

$redis->hkeys($key); // 获取hash中所有的键

$redis->hvals($key); // 获取hash中所有的值

Salin selepas log masuk

Redis 列表(List)

  • Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素列表的头部(左边)或者尾部(右边)

  • Redis中一个列表最多可以存储2^(32)-1个元素

1

2

3

4

5

6

7

// redis list 列表

$index = $start = 0;

$redis->lpush($key, 'val1', 'val2'); // 在list的开头添加多个值

$redis->lpop($key); // 移除并获取list的第一个元素

$redis->rpop($key); // 移除并获取list的最后一个元素 $stop = $redis->llen($key) - 1; // 获取list的长度

$redis->lindex($key, $index); // 通过索引获取list元素

$redis->lrange($key, $start, $stop); // 获取指定范围内的元素

Salin selepas log masuk

Redis集合(Set)

  • Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据

  • Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)

  • Redis中的一个集合中最多存储2^(32)-1个成员

1

2

3

4

5

6

// redis set 无序集合

$redis->sadd($key, 'val1', 'val2'); // 向集合中添加多个元素

$redis->scard($key); // 获取集合元素个数

$redis->spop($key); // 移除并获取集合内随机一个元素

$redis->srem($key, 'val1', 'val2'); // 移除集合的多个元素

$redis->sismember($key, 'val1'); // 判断元素是否存在于集合内

Salin selepas log masuk

Redis有序集合(sorted set)

  • Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员

  • 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序

  • 有序集合的成员是唯一的,但分数(score)却可以重复

  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为2^(32)-1

1

2

3

4

5

6

// redis sorted set 有序集合

// 有序集合里的元素都和一个分数score关联,就靠这个分数score对元素进行排序

$redis->zadd($key, $score1, $val1, $score2, $val2); // 向集合内添加多个元素

$redis->zcard($key); // 获取集合内元素总数

$redis->zcount($key, $minScore, $maxScore); // 获取集合内分类范围内的元素

$redis->zrem($key, $member1, $member2); // 移除集合内多个元素

Salin selepas log masuk

Redis HyperLogLog

  • Redis HyperLogLog 是用来做基数统计(计算数据集中不重复元素的个数)的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的

  • 在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^(64)个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比

  • 因为 HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog不能像集合那样,返回输入的各个元素

1

2

3

4

$redis->pfAdd('key1', array('elem1', 'elem2'));// 添加指定元素到HyperLogLog中

$redis->pfAdd('key2', array('elem3', 'elem2'));// 将多个HyperLogLog合并为一个HyperLogLog

$redis->pfMerge('key3', array('key1', 'key2'));

$redis->pfCount('key3'); // 返回HyperLogLog的基数估计值: int(3)

Salin selepas log masuk

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

PHP中Define和Const的区别

PHP与Web页面的交互

PHP中的ob_start用法解析

Atas ialah kandungan terperinci PHP实现Redis基本数据结构. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 Penyelesaian kepada ralat 0x80242008 semasa memasang Windows 11 10.0.22000.100 May 08, 2024 pm 03:50 PM

1. Mulakan menu [Start], masukkan [cmd], klik kanan [Command Prompt], dan pilih Run as [Administrator]. 2. Masukkan arahan berikut mengikut turutan (salin dan tampal dengan teliti): SCconfigwuauservstart=auto, tekan Enter SCconfigbitsstart=auto, tekan Enter SCconfigcryptsvcstart=auto, tekan Enter SCconfigtrustedinstallerstart=auto, tekan Enter SCconfigwuauservtype=share, tekan Enter netstopwuauserv , tekan enter netstopcryptS

Mekanisme caching dan amalan aplikasi dalam pembangunan PHP Mekanisme caching dan amalan aplikasi dalam pembangunan PHP May 09, 2024 pm 01:30 PM

Dalam pembangunan PHP, mekanisme caching meningkatkan prestasi dengan menyimpan sementara data yang kerap diakses dalam memori atau cakera, dengan itu mengurangkan bilangan akses pangkalan data. Jenis cache terutamanya termasuk memori, fail dan cache pangkalan data. Caching boleh dilaksanakan dalam PHP menggunakan fungsi terbina dalam atau perpustakaan pihak ketiga, seperti cache_get() dan Memcache. Aplikasi praktikal biasa termasuk caching hasil pertanyaan pangkalan data untuk mengoptimumkan prestasi pertanyaan dan caching halaman output untuk mempercepatkan pemaparan. Mekanisme caching berkesan meningkatkan kelajuan tindak balas laman web, meningkatkan pengalaman pengguna dan mengurangkan beban pelayan.

Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 Bagaimana untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000_Cara untuk menaik taraf Win11 English 21996 kepada Simplified Chinese 22000 May 08, 2024 pm 05:10 PM

Mula-mula anda perlu menetapkan bahasa sistem kepada paparan Bahasa Cina Mudah dan mulakan semula. Sudah tentu, jika anda telah menukar bahasa paparan kepada Bahasa Cina Ringkas sebelum ini, anda boleh melangkau langkah ini sahaja. Seterusnya, mula mengendalikan pendaftaran, regedit.exe, navigasi terus ke HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsLanguage dalam bar navigasi kiri atau bar alamat atas, dan kemudian ubah suai nilai kunci InstallLanguage dan nilai kunci Lalai kepada 0804 (jika anda ingin menukarnya ke Bahasa Inggeris en- kami, anda perlu Mula-mula tetapkan bahasa paparan sistem kepada en-us, mulakan semula sistem dan kemudian tukar semuanya kepada 0409) Anda mesti memulakan semula sistem pada ketika ini.

Struktur dan algoritma data Java: penjelasan mendalam Struktur dan algoritma data Java: penjelasan mendalam May 08, 2024 pm 10:12 PM

Struktur data dan algoritma ialah asas pembangunan Java Artikel ini meneroka secara mendalam struktur data utama (seperti tatasusunan, senarai terpaut, pepohon, dll.) dan algoritma (seperti pengisihan, carian, algoritma graf, dll.) dalam Java. Struktur ini diilustrasikan dengan contoh praktikal, termasuk menggunakan tatasusunan untuk menyimpan skor, senarai terpaut untuk mengurus senarai beli-belah, tindanan untuk melaksanakan rekursi, baris gilir untuk menyegerakkan benang, dan pepohon dan jadual cincang untuk carian dan pengesahan pantas. Memahami konsep ini membolehkan anda menulis kod Java yang cekap dan boleh diselenggara.

Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Jun 03, 2024 am 09:58 AM

Pokok AVL ialah pokok carian binari seimbang yang memastikan operasi data yang pantas dan cekap. Untuk mencapai keseimbangan, ia melakukan operasi belok kiri dan kanan, melaraskan subpokok yang melanggar keseimbangan. Pokok AVL menggunakan pengimbangan ketinggian untuk memastikan ketinggian pokok sentiasa kecil berbanding bilangan nod, dengan itu mencapai kerumitan masa logaritma (O(logn)) operasi carian dan mengekalkan kecekapan struktur data walaupun pada set data yang besar.

Bagaimana untuk mencari fail kemas kini yang dimuat turun oleh Win11_Share lokasi fail kemas kini yang dimuat turun oleh Win11 Bagaimana untuk mencari fail kemas kini yang dimuat turun oleh Win11_Share lokasi fail kemas kini yang dimuat turun oleh Win11 May 08, 2024 am 10:34 AM

1. Mula-mula, klik dua kali ikon [PC ini] pada desktop untuk membukanya. 2. Kemudian klik dua kali butang tetikus kiri untuk memasuki [pemacu C]. 3. Kemudian cari folder [windows] dalam pemacu C dan klik dua kali untuk masuk. 4. Selepas memasukkan folder [windows], cari folder [SoftwareDistribution]. 5. Selepas masuk, cari folder [muat turun], yang mengandungi semua fail muat turun dan kemas kini win11. 6. Jika kita ingin memadam fail-fail ini, hanya padamkannya terus dalam folder ini.

Dari negara mana pertukaran Nexo? Dari negara mana pertukaran Nexo? Mar 05, 2025 pm 05:09 PM

Nexo Exchange: Platform Pinjaman Cryptocurrency Swiss Analisis mendalam Nexo adalah platform yang menyediakan perkhidmatan pinjaman cryptocurrency, menyokong gadai janji dan pinjaman lebih daripada 40 aset crypto, mata wang fiat dan stablecoins. Ia menguasai pasaran Eropah dan Amerika dan komited untuk meningkatkan kecekapan, keselamatan dan pematuhan platform. Ramai pelabur ingin tahu di mana pertukaran Nexo didaftarkan, dan jawapannya ialah: Switzerland. Nexo ditubuhkan pada tahun 2018 oleh syarikat Swiss Fintech Credissimo. Nexo Exchange Lokasi dan Peraturan Geografi: Nexo beribu pejabat di Zug, Switzerland, rantau yang mesra cryptocurrency yang terkenal. Platform ini secara aktif bekerjasama dengan pengawasan pelbagai kerajaan dan telah berada di Rangkaian Penguatkuasaan Undang -undang Jenayah Kewangan AS (FINCEN) dan Kewangan Kanada

Memantau Titisan Redis Menggunakan Perkhidmatan Pengeksport Redis Memantau Titisan Redis Menggunakan Perkhidmatan Pengeksport Redis Jan 06, 2025 am 10:19 AM

Pemantauan berkesan pangkalan data Redis adalah penting untuk mengekalkan prestasi optimum, mengenal pasti kemungkinan kesesakan, dan memastikan kebolehpercayaan sistem secara keseluruhan. Perkhidmatan Pengeksport Redis ialah utiliti teguh yang direka untuk memantau pangkalan data Redis menggunakan Prometheus. Tutorial ini akan membimbing anda melalui persediaan dan konfigurasi lengkap Perkhidmatan Pengeksport Redis, memastikan anda mewujudkan penyelesaian pemantauan dengan lancar. Dengan mengikuti tutorial ini, anda akan mencapai persediaan pemantauan yang beroperasi sepenuhnya untuk memantau metrik prestasi pangkalan data Redis anda dengan berkesan.

See all articles