Redis 数据类型


Redis数据类型

Redis是一种基于内存的高性能Key-value型数据库,支持多种不同类型的数据结构,包括字符串、哈希、列表、集合和有序集合。Redis的五种基本数据类型分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Zset),下面将对这五种数据类型详细介绍。

字符串类型 (String)

字符串类型是Redis最简单的数据类型之一,即key-value形式的键值对,支持操作包括get、set、append等。Redis的字符串类型比较特殊,因其支持动态字符串,即实时修改字符串大小,而不是创建新字符串。

例如:

set mykey hello     #设置键为mykey,值为hello
get mykey           #获取键mykey的值
append mykey world  #将字符串world追加到键mykey的末尾

哈希类型 (Hash)

哈希类型存储的是键值对集合,键值对中键是字符串类型,值可以是字符串、数字、哈希等各种类型,很像Java中的Map集合。哈希类型支持的操作包括hset、hget、hmget等。

例如:

hset myhash field1 "foo"         #设置哈希类型键值对,键为myhash,键值对为field1:foo
hset myhash field2 "bar"         #同上
hget myhash field1               #获取键为myhash,键值对中key为field1的值
hmget myhash field1 field2       #一次获取多个哈希类型键值对

列表类型 (List)

列表类型即链表类型,存储有序元素序列,可以添加元素到列表的头部、尾部等任意位置,可以使用lpush、rpush、lpop、rpop、lrange等操作。

例如:

rpush mylist "hello"            #将"hello"放到列表mylist的末尾
rpush mylist "world"            #将"world"放到列表mylist的末尾
lpush mylist "redis"            #将"redis"放到列表mylist的头部
lrange mylist 0 -1              #获取列表的所有元素

集合类型 (Set)

集合类型存储的是无序元素的集合, 不允许相同的元素出现。支持多种操作,如sadd(添加元素)、srem(删除元素)、sismember(判断元素是否存在)等。

例如:

sadd myset "hello"              #将元素"hello"添加到集合myset
sadd myset "world"              #将元素"world"添加到集合myset
sismember myset "hello"         #判断元素"hello"是否存在于集合myset中
smembers myset                  #获取集合myset中所有元素

有序集合类型 (Zset)

有序集合类型存储的是有序的元素集合,每个元素会关联一个分值(score), 可以添加/删除元素并按照分值的大小排序. 支持多种操作,例如zadd(添加元素)、zrem(删除元素)、zrangebyscore(根据指定分值范围返回元素集合)等。

例如:

zadd myzset 0 "hello"           #添加一个分值为0,元素为"hello"的元素
zadd myzset 1.5 "world"         #添加一个分值为1.5,元素为"world"的元素
zrange myzset 0 -1              #获取有序集合myzset中的所有元素
zrangebyscore myzset 0 1        #获取分值在[0, 1]范围内的元素

以上就是Redis的五种基本数据类型,每种数据类型都有其特殊功能和优点,能够满足各种不同的数据存储需求。