Redis是一个开源的高性能键值对存储系统。它通常被用作数据库、缓存和消息中间件。Redis支持多种类型的值,以下是Redis支持的主要数据类型:
1. 字符串(String)
字符串是Redis最基本的数据类型。它可以包含任何数据,例如文字字符串、数字或二进制数据,大小可以是0到512MB。
SET mykey "Hello World"
GET mykey
2. 列表(List)
列表是由字符串组成的有序序列,可以添加元素到列表的头部(左侧)或尾部(右侧)。列表允许重复的值。
LPUSH mylist "world"
LPUSH mylist "hello"
LRANGE mylist 0 -1
3. 集合(Set)
集合是由字符串组成的无序集合。与列表不同,集合不允许重复的成员。
SADD myset "Hello"
SADD myset "World"
SMEMBERS myset
4. 有序集合(Sorted Set)
有序集合也是由字符串组成的集合,且每个元素都会关联一个双精度浮点数分数。成员可以按分数有序排列,并且不允许重复的成员。
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZRANGE myzset 0 -1 WITHSCORES
5. 哈希(Hash)
哈希是键值对的集合,键和值都是字符串。这对于存储对象是非常有用的。
HSET myhash field1 "Hello"
HSET myhash field2 "World"
HGETALL myhash
6. 位图(Bitmap)
位图实际上是字符串数据类型的一种特殊使用方式。通过位操作命令,你能够处理字符串值的每个比特位。这对于存储和操作大量布尔值非常有效。
SETBIT mybitmap 7 1
GETBIT mybitmap 7
7. HyperLogLog
HyperLogLog是一种概率数据结构,用于统计唯一值的数量。它可以计算包含大量重复元素的集合中唯一元素的近似数量,并且使用非常少的内存。
PFADD myhyperloglog "a" "b" "c" "d" "e" "f" "g"
PFCOUNT myhyperloglog
8. 地理空间(Geo)
Redis的地理空间数据类型是一种特殊的有序集合。它允许将经纬度坐标作为元素插入到集合中,并执行范围查询、半径查询和距离计算。
GEOADD mygeo 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
GEORADIUS mygeo 15 37 100 km
9. 流(Stream)
Redis流是Redis 5中引入的一个新数据类型。它是一个持久化的日志数据结构,可以用来表示消息流,并支持多个消费者。
XADD mystream * name "Redis" age "5"
XRANGE mystream - +
这些数据类型为不同的应用场景提供了广泛的数据管理和操作能力。通过使用这些不同的数据类型,可以构建如会话缓存、消息队列、实时数据分析等多种应用。