admin 管理员组

文章数量: 887021


2024年1月18日发(作者:能编程的软件)

redis基本类型

Redis是一个开源、高性能、基于内存的键值存储系统。它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等。本文将介绍Redis的基本数据类型。

1. 字符串(String)

字符串是Redis最基本的数据类型。它可以存储任何类型的数据,包括二进制数据。字符串类型的值最大可以达到512MB。Redis提供了一系列的字符串操作命令,包括设置、获取、删除、追加等操作。

1.1 设置字符串

可以使用SET命令设置一个字符串类型的值,语法如下:

SET key value [EX seconds] [PX milliseconds] [NX|XX]

其中,key是字符串类型的键,value是字符串类型的值,可以是任何类型的数据。EX和PX参数用于设置过期时间,单位分别为秒和毫秒。NX和XX参数用于设置当key不存在或已存在时的行为,默认为NX,表示只有当key不存在时才进行设置操作。

例如,设置一个key为name,值为Tom的字符串,不设置过期时间,可以使用如下命令:

SET name Tom

1.2 获取字符串

可以使用GET命令获取一个字符串类型的值,语法如下:

GET key

其中,key是字符串类型的键,返回值为字符串类型的值。

- 1 -

例如,获取key为name的字符串值,可以使用如下命令:

GET name

1.3 删除字符串

可以使用DEL命令删除一个字符串类型的值,语法如下:

DEL key

其中,key是字符串类型的键,返回值为删除的数量,如果key不存在则返回0。

例如,删除key为name的字符串值,可以使用如下命令:

DEL name

1.4 追加字符串

可以使用APPEND命令追加一个字符串类型的值,语法如下:

APPEND key value

其中,key是字符串类型的键,value是字符串类型的值,返回值为追加后的字符串长度。

例如,将key为name的字符串值追加一个Tom,可以使用如下命令:

APPEND name Tom

2. 哈希表(Hash)

哈希表是Redis中的一种键值存储结构,它类似于关联数组或者字典。哈希表中的每个键(key)都对应一个值(value),且键(key)必须为字符串类型,值(value)可以是字符串、列表、集合、有序集合等类型。哈希表中的键值对可以动态地添加、删除、修改。

- 2 -

2.1 设置哈希表

可以使用HSET命令设置一个哈希表中的键值对,语法如下:

HSET key field value

其中,key是哈希表类型的键,field是哈希表中的键(key),value是哈希表中的值(value)。

例如,设置一个key为user的哈希表,其中包含了name、age、gender三个键值对,可以使用如下命令:

HSET user name Tom

HSET user age 20

HSET user gender male

2.2 获取哈希表

可以使用HGET命令获取哈希表中的一个键值对,语法如下:

HGET key field

其中,key是哈希表类型的键,field是哈希表中的键(key),返回值是哈希表中的值(value)。

例如,获取key为user,field为name的哈希表中的值,可以使用如下命令:

HGET user name

2.3 删除哈希表

可以使用HDEL命令删除哈希表中的一个键值对,语法如下:

HDEL key field [field ...]

其中,key是哈希表类型的键,field是哈希表中的键(key),可 - 3 -

以同时删除多个键值对,返回值为删除成功的数量。

例如,删除key为user,field为gender的哈希表中的值,可以使用如下命令:

HDEL user gender

2.4 获取所有键值对

可以使用HGETALL命令获取哈希表中的所有键值对,语法如下:

HGETALL key

其中,key是哈希表类型的键,返回值为一个包含所有键值对的列表,列表中的元素为键(key)和值(value)交替出现。

例如,获取key为user的哈希表中的所有键值对,可以使用如下命令:

HGETALL user

3. 列表(List)

列表是Redis中的一种有序集合,它可以存储一个有序的字符串列表。列表中的每个元素都可以包含任何类型的数据。Redis提供了一系列的列表操作命令,包括添加、删除、获取等操作。

3.1 添加元素

可以使用LPUSH或RPUSH命令向列表中添加一个或多个元素,语法如下:

LPUSH key value [value ...]

RPUSH key value [value ...]

其中,key是列表类型的键,value是要添加到列表中的一个或 - 4 -

多个元素,LPUSH表示从列表头部添加元素,RPUSH表示从列表尾部添加元素,返回值为添加元素后列表的长度。

例如,向key为users的列表中添加三个元素Tom、Jerry、Mike,可以使用如下命令:

LPUSH users Tom Jerry Mike

3.2 获取元素

可以使用LINDEX命令获取列表中指定位置的元素,语法如下:

LINDEX key index

其中,key是列表类型的键,index是列表中的位置,从0开始计算,返回值为列表中指定位置的元素。

例如,获取key为users的列表中第一个元素,可以使用如下命令:

LINDEX users 0

3.3 删除元素

可以使用LPOP或RPOP命令删除列表中的一个元素,语法如下:

LPOP key

RPOP key

其中,key是列表类型的键,LPOP表示从列表头部删除元素,RPOP表示从列表尾部删除元素,返回值为删除的元素。

例如,从key为users的列表中删除第一个元素,可以使用如下命令:

LPOP users

- 5 -

4. 集合(Set)

集合是Redis中的一种无序集合,它可以存储多个字符串元素。集合中的元素是唯一的,不会重复。Redis提供了一系列的集合操作命令,包括添加、删除、获取等操作。

4.1 添加元素

可以使用SADD命令向集合中添加一个或多个元素,语法如下:

SADD key member [member ...]

其中,key是集合类型的键,member是要添加到集合中的一个或多个元素,返回值为添加元素后集合的长度。

例如,向key为students的集合中添加三个元素Tom、Jerry、Mike,可以使用如下命令:

SADD students Tom Jerry Mike

4.2 获取元素

可以使用SMEMBERS命令获取集合中的所有元素,语法如下:

SMEMBERS key

其中,key是集合类型的键,返回值为一个包含所有元素的列表。

例如,获取key为students的集合中的所有元素,可以使用如下命令:

SMEMBERS students

4.3 删除元素

可以使用SREM命令删除集合中的一个或多个元素,语法如下:

SREM key member [member ...]

- 6 -

其中,key是集合类型的键,member是要删除的一个或多个元素,返回值为删除成功的数量。

例如,从key为students的集合中删除Tom和Jerry两个元素,可以使用如下命令:

SREM students Tom Jerry

5. 有序集合(Sorted Set)

有序集合是Redis中的一种有序集合,它可以存储多个字符串元素,每个元素都对应一个分值(score)。有序集合中的元素是唯一的,不会重复。Redis提供了一系列的有序集合操作命令,包括添加、删除、获取等操作。

5.1 添加元素

可以使用ZADD命令向有序集合中添加一个或多个元素,语法如下:

ZADD key score member [score member ...]

其中,key是有序集合类型的键,score是要添加的元素的分值,member是要添加到有序集合中的元素,返回值为添加元素后有序集合的数量。

例如,向key为students的有序集合中添加三个元素Tom、Jerry、Mike,分值分别为75、80、85,可以使用如下命令:

ZADD students 75 Tom 80 Jerry 85 Mike

5.2 获取元素

可以使用ZRANGE命令获取有序集合中指定范围内的元素,语法 - 7 -

如下:

ZRANGE key start stop [WITHSCORES]

其中,key是有序集合类型的键,start和stop是要获取的元素的范围,可以使用负数表示倒数第n个元素,WITHSCORES参数表示同时返回元素的分值,返回值为一个包含所有元素的列表。

例如,获取key为students的有序集合中排名前三的元素和分值,可以使用如下命令:

ZRANGE students 0 2 WITHSCORES

5.3 删除元素

可以使用ZREM命令删除有序集合中的一个或多个元素,语法如下:

ZREM key member [member ...]

其中,key是有序集合类型的键,member是要删除的一个或多个元素,返回值为删除成功的数量。

例如,从key为students的有序集合中删除Tom和Jerry两个元素,可以使用如下命令:

ZREM students Tom Jerry

总结

Redis提供了多种数据类型,每种数据类型都有自己的特点和使用场景。

- 8 -


本文标签: 元素 集合 删除 使用 命令