Redis 的数据类型

Introduction to Redis

Redis 是一种开源(BSD 许可Introduction to Redis)内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis 提供数据结构,例如 字符串散列列表集合、带范围查询的排序集合、位图hyperloglogs地理空间索引。Redis 具有内置复制Lua 脚本LRU 逐出事务和不同级别的磁盘持久性,并通过Redis SentinelRedis Cluster的自动分区提供高可用性。

127.0.0.1:6379> set name alpha # 设置值
OK
127.0.0.1:6379> get name # 获取值
"alpha"
127.0.0.1:6379> expire name 10 # 设置超时时间
(integer) 1
127.0.0.1:6379> ttl name # 获取存活时间
(integer) 8
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> move age 1 # 移动 key 到之情数据库
(integer) 1
127.0.0.1:6379> set name orkva
OK
127.0.0.1:6379> type name # 查看 key 的类型
string
127.0.0.1:6379> del name # 删除 key 值
(integer) 1
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> exists name # 检查 key 是否存在
(integer) 0

Redis 命令参考

基础类型

String

使用场景

  • 基础的数据缓存:如 json 数据缓存

  • 计数器

  • 自增统计场景:如网站访问量、点击量等

List

灵活的使用可以在 Redis 中实现队列(lpush rpop)或栈(lpush lpop)。

Set

Hash

映射形式:key - [field - value]

String 和 Hash 都可以用来存储对象数据,String 使用 Json 的方式存储,而 Hash 使用键值对形式存储。当数据需要更新时,使用 String 存储的数据需要替换 Json,而使用 Hash 存储的数据只需要更新对应字段。

ZSet(Sorted Set)

特殊类型

Streams

Streams 是 Redis 5.0 中引入的新数据类型,提供了类似于日志形式的数据存储类型,详细使用可参照 Redis Streams 以及 Streams tutorial

geospatial

geospatial 支持存储地理空间位置,可以用来查找指定半径或者区域范围内的位置。

HyperLogLog

HyperLogLog 是一种估计集合基数的数据结构。作为一种概率数据结构,HyperLogLog 以完美的准确性换取高效的空间利用。

Redis HyperLogLog 实现最多使用 12 KB,并提供 0.81% 的标准错误。

HyperLogLog 底层结构及其原理

Redis new data structure: the HyperLogLog

bitmaps

Redis 位图是字符串数据类型的扩展,可让您将字符串视为位向量。您还可以对一个或多个字符串执行按位运算。位图用例的一些示例包括:

  • 集合成员对应于整数 0-N 的情况的有效集合表示。

  • 对象权限,其中每一位代表一个特定的权限,类似于文件系统存储权限的方式。

假设我们有 0-999 个微服务需要按时向服务器 43 发送 heartbeat ping

最后更新于

这有帮助吗?