Rumah 类库下载 其它类库 PHP+Redis:hash散列类型

PHP+Redis:hash散列类型

Oct 20, 2016 pm 02:04 PM

3、hash散列类型

简介

hash散列类似于一个小型的Redis数据库

一个散列可以包含多个键值对

散列的每个键都不能重复,各不相同,无序排列

其值可以是字符串或数字值

对于数字值,可以执行自增或者自减操作

散列结构

下面的结构中,user代表键名,其可以包含多个不同的键值对

[
    "user":[
        "name1":"yanying1",
        "name2":"yanying2",
        "name3":"yanying3"
    ]
]
Salin selepas log masuk

操作方法

1.png

演示(命令行 + PHP演示)

命令行:

首先,我们添加一个键值对到散列。如果 成功则返回1;如果键已经存在,返回0

hset hash-key sub-key1 value1 // 返回 1
Salin selepas log masuk

我们再添加一个不存在的键值对

hset hash-key sub-key2 value2 // 返回 1
Salin selepas log masuk

这个时候,散列中已经存在键sub-key1和sub-key2,接下来我们再添加一个相同的键sub-key1到散列中,看看会发生什么:

hset hash-key sub-key1 value1 // 返回 0,由于该键已经存在
Salin selepas log masuk

下面我们通过hget获取一个给定键sub-key1的值。

hget hash-key sub-key1 // "value1"
Salin selepas log masuk

成功获取了一个值。我们再获取添加的所有元素看看,刚刚的到底添加了哪几个值

hgetall hash-key
Salin selepas log masuk
Salin selepas log masuk

其结果如下。我们发现,第一个结果为第一个键值对的键,第二个结果为键值对的值,以此类推,每两个为一组。

"sub-key1""value1""sub-key2""value2"
Salin selepas log masuk

下面我们试着删除一个键试试,我们会发现如果 该键之前存在于散列中,那么删除时候则返回1,否则,返回0

hdel hash-key sub-key1 // 该键之前存在于散列,返回1
Salin selepas log masuk

我们再试着删除一次sub-key1,发现当删除 不存在的键的时候,返回结果0

hdel hash-key sub-key1
Salin selepas log masuk

我们再次获取全部键值对,看看还剩些什么。

hgetall hash-key
Salin selepas log masuk
Salin selepas log masuk

其结果为,少了两个结果,毕竟刚刚删除了一个键值对

"sub-key1""value1"
Salin selepas log masuk

PHP版本演示

第一步,链接redis数据库

$redis = new Redis();$redis->connect('127.0.0.1', 6379);
Salin selepas log masuk

我们先插入一个键值对到hash-key散列。1代表插入成功;0元素代表已经存在

$redis->hset('hash-key','sub-key1','value1'); // int 1,元素插入成功,之前不存在该键
Salin selepas log masuk

我们再次插入相同键值对

$redis->hset('hash-key','sub-key1','value1'); // int 0,元素插入失败,该键已经存在
Salin selepas log masuk

为了下面的演示使用,我们继续插入一些其他的值

$redis->hset('hash-key','sub-key2','value2'); // int 0
Salin selepas log masuk

下面我们使用hget获取键对应的值。我们试试获取sub-key2的值。

$redis->hget('hash-key','sub-key2'); // 'value2'
Salin selepas log masuk

获取了一个后,我们在尝试使用hgetall获取刚刚插入的全部值,看看里面包含哪些键值对

$redis->hgetall('hash-key');
Salin selepas log masuk
Salin selepas log masuk

获得结果,是一个包含完整键值得数组

array (size=2)  'sub-key1' => string 'value1' (length=6)  'sub-key2' => string 'value2' (length=6)
Salin selepas log masuk

查看完了所有的键值对,我们尝试删除其中一个键。 如果之前键存在于散列中,则返回1,反之,返回0

$redis->hdel('hash-key','sub-key1'); // 该键之前存在,返回int 1
Salin selepas log masuk

我们再次尝试删除sub-key1键,发现其返回0. 则说明该键不存在集合中,删除失败

$redis->hdel('hash-key','sub-key1'); // 该键不存在,返回int 0
Salin selepas log masuk

下面我们使用hgetall查看下散列中还剩余的所有键值对

$redis->hgetall('hash-key');
Salin selepas log masuk
Salin selepas log masuk

发现,只返回了包含一个键值对的数组。

array (size=1)  'sub-key2' => string 'value2' (length=6)
Salin selepas log masuk

原因即是,刚刚sub-key1已经被删除


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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)