Redis 数据结构

数据结构而非类型

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 排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值