# 数据类型
[TOC]
Redis 5种数据类型
> `string`(字符串),`hash`(哈希),`list`(列表),`set`(集合)及`zset`(sorted set:有序集合)
> Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
## string (字符串)
* 一个`key` 对应一个 `value`
* 二进制安全,可以包含任何数据;例如: 图片或者序列化的对象
* 一个键最大能存储512MB
## hash(哈希)
* `key => value` 键值对
* 一个 string 类型的 field 和 value 的映射表
* 每个 hash 可以存储 2^32 - 1 键值对(40多亿)
## list(列表)
* 简单的字符串列表,按照插入顺序排序
* 列表最多可存储 2^32 - 1 元素 (4294967295, 每个列表可存储40多亿)。
## set(集合)
* 不允许重复的数据出现
* Redis 的 Set 是 string 类型的无序集合。
* 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
* 集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
## zset(sorted set : 有序集合)
* 和Set一样也是string类型元素的集合,且不允许重复的成员。
* 每个元素都会关联一个double类型的分数
* 成员是唯一的,但分数(score)却可以重复。
* 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
* 集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
## HyperLogLog
* 用来做基数统计的算法
* 输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
* 每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数
* HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素
> 基数 :
> 比如数据集 {2, 4, 6, 7, 5, 7, 8}, 那么这个数据集的基数集为 {2, 4, 6 ,7,5, 8}, 基数(不重复元素)为6。 基数估计就是在误差可接受的范围内,快速计算基数。
- 简介
- PHP
- 字符串函数
- 数组函数
- 正则
- 加密函数
- 面向对象
- 关键字
- 设计模式
- 魔术方法
- 机制扩展
- 会话机制
- PHP框架
- laravel
- 问题
- swoole
- easyswoole
- workerman
- 数据库
- Sphinx
- MongoDB
- MemCache
- Redis
- 基础操作
- 数据类型
- 持久化
- 分布式锁
- 内存模型
- redis高级特性
- MySql
- 基础操作
- 数据类型
- 数据表引擎
- 锁机制
- 事务处理
- 存储过程
- 触发器
- 索引
- 关联查询
- 分析SQL语句-优化查询
- 分区分表
- 主从复制
- MySql安全性
- 网络协议
- HTTP
- header详解
- 状态码
- nginx-配置
- 逻辑算法
- 时间和空间复杂度
- 常见算法
- 数据结构
- 核心
- 进程、线程、协程
- 存储容量-计量单位
- 开发软件及配置
- 版本控制器
- Git
- Fidder
- Fidder-Android7
- 自动化部署
- Jenkins
- supervisor
- Elasticsearch
- LogStash
- RabbitMQ
- AB测试
- JAVA-JDK
- FileBeat
- PhpStorm
- Composer
- Linux
- API安全
- 高并发及大流量相关概念
- 网站优化
- WEB
- Electron