redis数据类型介绍
数据类型 | 实现方式 | 描述 |
---|---|---|
String | int | 用来保存整数值 |
raw | 用来保存长字符串(长度大于44字节) | |
embstr | 保存短字符串(长度小于44字节) | |
List | ziplist(压缩列表) |
列表保存元素个数小于512个 每个元素长度小于64字节 压缩列表是Redis为了节省内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构,相对于字典数据结构,压缩列表用于元素个数少、元素长度小的场景 |
linkedlist(双端链表) | 当无法使用ziplist列表时则使用linkedlist | |
Hash |
ziplist(压缩列表) |
1、列表保存元素个数小于512个 2、每个元素长度小于64字节 |
hashtable |
hashtable 编码的哈希表对象底层使用字典数据结构,哈希对象中的每个键值对都使用一个字典键值对。 |
|
SET | intset | intset 编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合中 |
hashtable | hashtable 编码的集合对象使用 字典作为底层实现,字典的每个键都是一个字符串对象,这里的每个字符串对象就是一个集合中的元素,而字典的值则全部设置为 null。这里可以类比Java集合中HashSet 集合的实现,HashSet 集合是由 HashMap 来实现的,集合中的元素就是 HashMap 的key,而 HashMap 的值都设为 null。 | |
ZSET | ziplist | ziplist 编码的有序集合对象使用压缩列表作为底层实现,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的成员,第二个节点保存元素的分值。并且压缩列表内的集合元素按分值从小到大的顺序进行排列,小的放置在靠近表头的位置,大的放置在靠近表尾的位置。 |
skiplist |
skiplist 编码的有序集合对象使用 zet 结构作为底层实现,一个 zset 结构同时包含一个字典和一个跳跃表 字典的键保存元素的值,字典的值则保存元素的分值;跳跃表节点的 object 属性保存元素的成员,跳跃表节点的 score 属性保存元素的分值。 这两种数据结构会通过指针来共享相同元素的成员和分值,所以不会产生重复成员和分值,造成内存的浪费。 说明:其实有序集合单独使用字典或跳跃表其中一种数据结构都可以实现,但是这里使用两种数据结构组合起来,原因是假如我们单独使用 字典,虽然能以 O(1) 的时间复杂度查找成员的分值,但是因为字典是以无序的方式来保存集合元素,所以每次进行范围操作的时候都要进行排序;假如我们单独使用跳跃表来实现,虽然能执行范围操作,但是查找操作有 O(1)的复杂度变为了O(logN)。因此Redis使用了两种数据结构来共同实现有序集合。 |
https://www.cnblogs.com/ysocean/p/9102811.html
https://www.cnblogs.com/ysocean/p/9080942.html
redis数据类型介绍相关推荐
- Redis 数据类型介绍
Redis 数据类型介绍 你也许已经知道Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值.也就是说,你不必仅仅把字符串当作键所指向的值.下列这些数据类型都可 ...
- 第3节-Redis数据类型介绍以及应用
第3节-Redis数据类型介绍以及应用 1.9大类型 String(字符类型) Hash(散列类型) List(列表类型) Set(集合类型) SortedSort(有序集合类型,简称zset) Bi ...
- Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...
- redis种类型对应java类型_Redis的五种基本数据类型介绍
Redis作为缓存具有极其丰富的功能,比如计数器.好友关系以及排行榜等等.而Redis之所能够实现如此强大的功能,完全是依赖着它的基本数据结构.今天我们来看看Redis的五种基本的数据结构,分别是字符 ...
- Redis五种数据类型介绍
概述 Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合.本文详细介绍这五种数据类型的使用方法.本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方 ...
- redis介绍, redis安装, redis持久化, redis数据类型
redis介绍 Redis和Memcached类似,也属于k-v数据存储 Redis官网redis.io, 当前最新稳定版4.0.1 支持更多value类型,除了和string外,还支持hash.li ...
- Redis数据类型及编码格式——介绍及String篇
Redis核心对象 reids中定义了一个数据结构用来统一表示各种数据类型,它叫做redisObject typedef struct redisObject {unsigned type:4; // ...
- Redis数据介绍与指令大全
数据类型初识 作为 Key-value 型数据库,Redis 也提供了键(Key)和键值(Value)的映射关系.但是,除了常规的数值或字符串,Redis 的键值还可以是以下形式之一: Lists ( ...
- 三大缓存框架ehcache、memcache和redis的介绍
三大缓存框架ehcache.memcache和redis的介绍 2016-04-12 架构说 4964 阅读 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存 ...
最新文章
- Python学习笔记:字符串和编码
- idea调试debug技巧_这几个IDEA高级调试技巧,用了都说好!
- LINUX下SYN***战
- [Redux/Mobx] Mobx的设计思想是什么
- python dicom图像分割_python读取DICOM头文件的实例
- 没人性!让我们这么早来上班
- Sentinel2A影像监测家乡油菜长势!!
- 阿里云申请免费ssl证书并配置nginx
- 简单的限流保护电路图大全(六款简单的限流保护电路设计原理图详解)
- Mysql开启3306端口远程访问
- js之css样式特效 ---- js篇
- eco淘客机器人-ECO云返利系统淘客
- 黄页宝贝工具栏软件发布了
- java实现图片转pdf文件
- java企业排班系统企业考勤人脸识别考勤系统源码企业批量排班网站
- 远程桌面连接不上是什么原因?怎么解决
- 统一依赖管理Composing builds
- 用友加密服务器修改密码,用户密码怎么修改?
- UVA140回溯法剪枝剪多少的讨论
- 百度卫星地图无法使用鼠标绘制工具的问题简单解决方案