Redis 数据类型


概览:
在这里插入图片描述
数据结构 : key = value 中value的类型
内部编码: 实际在底层用来存储value的结构
设计优点:
① 解耦,用户可根据需求再开发内部编码方式
② 实现空间或效率优化, 多种内部编码实现可以在不同场景下发挥各⾃的优势,例如 ziplist ⽐较节省内存,但是在列表元素⽐较多的情况下,性能会下降,这时候 Redis 会根据配置选项将列表类型的内部实现转换为linkedlist,整个过程⽤⼾同样⽆感知。

Reidis 命名规范

与 MySQL 等关系型数据库不同的是,Redis 没有表、字段这种命名空间,⽽且也没有对键名有强制要求(除了不能使⽤⼀些特殊字符)。但设计合理的键名,有利于防⽌键冲突和项⽬ 的可维护性,⽐较推荐的⽅式是使⽤ “业务名:对象名:唯⼀标识:属性” 作为键名。例如 MySQL 的数据库名为 vs,⽤⼾表名为 user_info,那么对应的键可以使⽤ “vs:user_info:6379”、“vs:user_info:6379:name” 来表⽰,如果当前 Redis 只会被⼀个业务 使⽤,可以省略业务名 “vs:”。如果键名过程,则可以使⽤团队内部都认同的缩写替代,例如"user:6379:friends:messages:5217" 可以被 “u:6379🇫🇷m:5217” 代替。毕竟键名过⻓,还是会导致 Redis 的性能明显下降的

String类型

  1. 基本介绍:

① :String类型是redis最基础的数据类型,其他⼏种数据结构也都是在字符串类似基础上构建的,例如列表和集合的元素类型是字符串类型,所以字符串类型能为其他 4 种数据结构的学习奠定基础。
②:字符串类型的值实际可以是字符串,包含⼀般格式的字符串或者类似 JSON、XML 格式的字符串;数字,可以是整型或者浮点型;甚⾄是⼆进制流数据,例如图⽚、⾳频、视频等。不过⼀个字符串的最⼤值不能超过 512 MB。
③:由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的,所以 Redis 是不处理字符集编码问题的,客⼾端传⼊的命令中使⽤的是什么字符集编码,就存储什么字符集编码

  1. 内部编码:

redis同种数据结构(string)的内部编码不一定相同, Redis会根据当前值的类型和⻓度动态决定使⽤哪种内部编码实现。

字符串类型的内部编码有 3 种:
① int:8 个字节的⻓整型。(数据为纯数字时,redis内部使用)
② embstr:⼩于等于 39 个字节的字符串。(数据为字符串时,redis内部使用)
③ raw:⼤于 39 个字节的字符串。(数据为字符串时,redis内部使用))

Hash 类型

  1. 基本介绍

①:
Redis 本身的键值对被称为 “key - value”
Redis 提供的Hash类型 为 “field - value”
即Redis中Hash类型的键值对表示为 “key - ’ filed1 - value1 , filed2 - value2 …’ ”
在这里插入图片描述

② 对Hash类型的操作使用Hash系列的指令,例如

hset key field value 设置值 O(1)
hget key field 获取值 O(1)
hdel key field [field ...] 删除 field O(k), k 是 fiel个数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弦化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值