数据结构而非类型

Redis 有 5 种基本数据结构:

有很多文章都会说,Redis 支持 5 种常用的 数据类型,这其实存在很大的歧义。Redis 里存的都是二进制数据,其实就是字节数组 (byte[]),这些字节数据是没有数据类型的,只有把它们按照合理的格式解码后,可以变成一个字符串,数字或对象,此时才具有数据类型。

所以任何东西只要能转化成字节数组 (byte[]),就可以存到 Redis 里,无论是字符串、数字、对象、图片、声音、还是其他文件。

string

Redis 里的数据结构 string 指的并不是字符串,它其实表示的是一种最简单的,一个 key 只能对应一个 value 的数据结构。这里的 key 和 value 都是 byte 数组,只不过 key 一般是由一个字符串转换成的 byte 数组,value 则根据实际需要而定。

在特定情况下,对 value 也会有一些要求,比如要进行自增或自减操作,那 value 对应的 byte 数组必须要能被解码成一个数字才行。

value 是一个可变的字节数组,我们初始化字符串的内容,

list

那么 list 这种数据结构,其实表示一个 key 可以对应多个 value,且 value 之间是有先后顺序的,value 值可以重复

set

set 这种数据结构,表示一个 key 可以对应多个 value,且 value 之间是没有先后顺序的,value 值不可以重复

hash

hash 这种数据结构,表示一个 key 可以对应多个 key - value,此时这些 key - value 对之间的先后顺序一般意义不大,这是一个按照名称语义来访问的数据结构,而非位置语义。

zset

zset 又称 sorted set,这种数据结构表示一个 key 可以对应多个 value,value 之间是有大小排序的,value 值不可以重复。每个 value 都和一个浮点数相关联,该浮点数叫 score。元素排序规则是:先按 score 排序,再按 value 排序。

转载于:https://juejin.im/post/5cb7c055e51d456e303db87b

大话 Redis 数据结构相关推荐

  1. Redis 数据结构-字典源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 相关文章 Redis 初探-安装与使用 Redis 数据结构-字符串源码分析 本文将从以下几个方面介绍 前言 字典结构图 字典 ...

  2. 为了拿捏 Redis 数据结构,我画了 40 张图

    Redis 为什么那么快? 除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理. 因此,这次我们就来好 ...

  3. 【带你重拾Redis】Redis数据结构及使用场景

    Redis数据结构 Redis有着非常丰富的数据结构,这些数据结构可以满足非常多的应用场景, 如果对这些数据结构有一个比较清晰的认知,使用Redis也会更加得心应手. Redis主要支持以下数据结构: ...

  4. 深入剖析Redis系列(七) - Redis数据结构之列表

    前言 列表(list)类型是用来存储多个 有序 的 字符串.在 Redis 中,可以对列表的 两端 进行 插入(push)和 弹出(pop)操作,还可以获取 指定范围 的 元素列表.获取 指定索引下标 ...

  5. redis 自减命令_Redis 实战 —— 04. Redis 数据结构常用命令简介

    字符串 P39 Redis 的字符串是一个有字节组成的序列,可以存储以下 3 种类型的值:字节串(byte string).整数.浮点数. 在需要的时候, Redis 会将整数转换成浮点数.整数的取值 ...

  6. redis数据结构详解之Hash(四)

    原文:redis数据结构详解之Hash(四) 序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个 ...

  7. zincrby redis python_【Redis数据结构 序】使用redispy操作Redis数据库

    点击蓝色"不太灵光的程序员"关注我哟加个"星标",每天上午 08:00,干货推送!本文依旧会对学习内容进行拆分,建议阅读时间基本保持10分钟内,想学习之前章节内 ...

  8. redis 数据结构

    2019独角兽企业重金招聘Python工程师标准>>> redis对象 redis 数据结构 字符串对象  SDS(简单动态字符串) 列表对象  压缩列表(ziplist) 或 链表 ...

  9. Redis 数据结构与内存管理策略(上)

    Redis 数据结构与内存管理策略(上) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...

  10. redis value多大会影响性能_选择合适Redis数据结构,减少80%的内存占用

    前言 redis作为目前最流行的nosql缓存数据库,凭借其优异的性能.丰富的数据结构已成为大部分场景下首选的缓存工具. 由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观. ...

最新文章

  1. Elasticsearch高并发写入优化的开源协同经历
  2. oracle字符串转in方法,Oracle 逗号分割的字符串转换为可放入in的语句
  3. 799页!吴恩达深度学习笔记.PDF
  4. vs2010 出错:error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  5. 提高SQLITE 大数据量操作效率的方法
  6. 四阶龙格库塔c语言,四阶龙格库塔算法的C语言实现
  7. Ubuntu下各种服务搭建及操作技巧
  8. 最近目标检测新范式汇总SparseRCNN,OneNet,DeFCN等
  9. 如何用iMazing备份和恢复辐射避难所
  10. python 字符串以及通过dos命令运行py脚本
  11. python资本市场财务数据分析_不懂财务数据分析?教你一分钟看懂财务报表
  12. 腾讯 AI Lab 2020 年度回顾
  13. 【Mybatis-Plus】【异常】Inferred type ‘E‘ for type parameter ‘E‘ is not within its bound;
  14. 主会场与分会场直播场景自由切换的实际应用效果
  15. C# 更换微信小程序码中间的logo图层
  16. 轻松解决yum源不能正常下载的四种方式
  17. 高考成绩查询2021汕头市,2021汕头市地区高考成绩排名查询
  18. 五金切断模具结构和设计注意事项
  19. 基于Android开发的在线考试系统(附带源码)
  20. Android 实现扑克牌动画,Android扑克牌猜点小游戏源码

热门文章

  1. matlab如何编newton-raphson,Matlab中的Newton-Raphson方法
  2. Keil编译后Code RO Data Rw Data ZI的含义
  3. 超详细Gulp打包seajs模块压缩合并,绝对对你项目有帮助 ~
  4. 计算机重装后如何连接无线网络,电脑重装系统后怎么连接无线网络连接
  5. mysql查询数据1168_mysql merge报错ERROR 1168
  6. Why “the CUDA Samples are not meant for performance measurements”?
  7. 联网监管与手册报关的区别
  8. 清北学堂noip2018集训D3
  9. 一分钟解决 The server selected protocol version TLS10 is not accepted 问题
  10. Android 蓝牙HOGP协议(基于ble-gatt蓝牙)连接流程分析--framework-jni-btif-bta-btm-hci -- 全网最详细(二)