Redis 的数据类型
Redis 是一种开源(BSD 许可Introduction to Redis)内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis 提供数据结构,例如 字符串、散列、列表、集合、带范围查询的排序集合、位图、hyperloglogs、地理空间索引和流。Redis 具有内置复制、Lua 脚本、LRU 逐出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis 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基础类型
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 底层结构及其原理
bitmaps
Redis 位图是字符串数据类型的扩展,可让您将字符串视为位向量。您还可以对一个或多个字符串执行按位运算。位图用例的一些示例包括:
集合成员对应于整数 0-N 的情况的有效集合表示。
对象权限,其中每一位代表一个特定的权限,类似于文件系统存储权限的方式。
假设我们有 0-999 个微服务需要按时向服务器 43 发送 heartbeat ping
最后更新于
这有帮助吗?