Redis-数据结构与对象-对象
2023-09-11 14:16:54 时间
1. 作用
Redis使用对象作为五种不同类型的底层实现,字符串,列表,哈希,集合,有序集合等
而对象是基于之前的分析的数据结构创建的。每个对象都至少用到一种数据结构,这意味着,Redis五大类型,底层实现是可以有多种实现的,这方便在不同场景下选择合适的底层结构,优化性能
在Redis中,键和值均为一个对象
2. 数据结构
typedef struct redisObject{
//类型
unsigned type:4;
//编码
unsigned encoding:4;
//指向底层实现数据结构的指针
void *ptr;
// 引用计数器
int refcount;
//最后访问时间
unsigned lru:32;
}
```
2.1. 类型
类型常量
对象名称
REDIS_STRING
字符串对象
REDIS_LIST
列表对象
REDIS_HASH
哈希对象
REDIS_SET
集合对象
REDIS_ZSET
有序集合对象
2.2. 编码和底层实现
编码常量
编码所对应的底层数据结构
REDIS_ENCODING_INT
long类型的整数
REDIS_ENCODING_EMBSTR
embstr编码的简单动态字符串
REDIS_ENCODING_RAW
简单动态字符串
REDIS_ENCODING_HT
字典
REDIS_ENCODING_LINKEDLIST
双端链表
REDIS_ENCODING_ZIPLIST
压缩列表
REDIS_ENCODING_INTSET
整数集合
REDIS_ENCODING_SKIPLIST
跳跃表和字典
可以从上图看出,Redis五大基本类型底层实现都不止一种
使用encoding属性设定对象所使用的编码方式,而不是特点类型关联一种编码,这样提升了Redis灵活性,特定场景可以选择合适的底层实现
来源:https://blog.csdn.net/qq_33330687/article/details/86527834
相关文章
- redis实战笔记(2)-第2章 使用 Redis构建Web应用
- Another Redis Desktop Manager 链接redis,redis集群链接后用显示不全的问题
- [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
- redis性能监控(一): Redis Info 命令 - 获取 Redis 服务器的各种信息和统计数值
- Redis——jedis连接redis哨兵模式简单使用
- Redis——maven、spring、jedis快速搭建redis工程
- Redis开发 - 1. 认识redis
- Redis 笔记与总结8 PHP + Redis 信息管理系统(分页+好友关注)
- 【Redis】RedisObject 对象
- 《Redis实战》一2.1 登录和cookie缓存
- Java代码redis基础操作
- 【Redis入门笔记 01】redis 安装 & 配置
- 宝塔服务器连接redis
- 【Redis】中的一些坑(三)——「数据持久化」篇
- Redis(1.20)redis慢查询,redis slowlog
- Redis(1.19)redis内存消耗、redis内存优化
- Redis(1.17)redis客户端管理
- redis High Availability---Redis Sentinel翻译
- redis java对象操作
- 通过Keepalived实现Redis Failover自动故障切换功能
- 实例解读什么是Redis缓存穿透、缓存雪崩和缓存击穿