1. Redis介绍
Redis是一个基于内存的开源NoSQL数据库,支持多种数据结构。
Redis支持的数据结构包括:
字符串(string)
哈希(hash)
列表(list)
集合(set)
有序集合(sorted set)
Redis的特点是速度快、支持数据持久化、支持分布式、数据结构丰富。
2. Redis中的五种基础数据结构
2.1 字符串(string)
字符串是Redis中最简单的数据结构,是一个二进制安全的字符串,可以用于存储如下类型的数据:
普通的字符串
二进制数据
整数
浮点数
示例:
set mykey "hello world"
get mykey
以上示例代码存储了一条字符串数据,并通过get
命令获取它的值。
2.2 哈希(hash)
哈希是Redis中的一个key-value存储结构,值得注意的是,和字符串不同的是,哈希可以存储多个字段(field)和对应的值(value)。
示例:
hmset mykey field1 "value1" field2 "value2"
hget mykey field1
以上示例代码使用hmset
命令给mykey
哈希添加了两个字段field1/value1
和field2/value2
,并用hget
命令获取mykey
哈希中的field1
所对应的值。
2.3 列表(list)
列表是Redis中的链表结构,可以添加元素、获取元素、删除元素等。列表也支持下标操作,因此可以通过下标直接访问元素。
示例:
rpush mylist "hello"
rpush mylist "world"
lindex mylist 0
以上示例代码将两个元素"hello"
和"world"
添加到mylist
列表中,并用lindex
命令获取mylist
列表中下标为0
的元素。
2.4 集合(set)
集合是Redis中的一个无序的集合结构,可以添加、删除元素并对元素做交并集运算等操作。
示例:
sadd myset "hello"
sadd myset "world"
smembers myset
以上示例代码将两个元素"hello"
和"world"
添加到myset
集合中,并通过smembers
命令获取myset
集合中的所有元素。
2.5 有序集合(sorted set)
有序集合是Redis中的一个特殊的无序集合,它的每个元素都关联一个分数(score),分数可以重复。集合中的元素按照分数从小到大排序。
示例:
zadd myzset 1 "hello"
zadd myzset 2 "world"
zrange myzset 0 -1
以上示例代码将两个元素"hello"
(分数为1
)和"world"
(分数为2
)添加到myzset
有序集合中,并通过zrange
命令获取myzset
中从下标0
开始,到下标-1
结束的所有元素。
3. 总结
Redis是一个速度快、支持数据持久化、支持分布式且具有多种数据结构的NoSQL数据库。Redis支持的五种基础数据结构包括字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(sorted set),这些数据结构可以满足各种应用场景的需求。