跳到主要内容

字符串

2024年04月08日
柏拉文
越努力,越幸运

一、认识


Redis 中,string 类型是最基本且最常用的数据类型之一。它可以存储任意的数据,比如文本、数字、二进制数据等。每个键值对中的值都可以是字符串类型,并且 Redis 中的所有数据结构都是基于键值对的模型。

Redis String 类型是由一个键和一个值组成的。键是唯一的,值可以是字符串(字符、数字等)或二进制数据(如图片、音频等)。Redis 中的字符串最大可以存储 512 MB 的数据。Redis 提供了许多针对字符串的操作,可以对字符串进行设置、获取、修改、追加、截取、增减操作等。对字符串的操作(例如 SET, GET, INCR, DECR 等)都是原子操作,即操作是不可中断的,要么成功,要么失败。

Redis String 适用于存储简单的、独立的数据,当你需要快速存取整个值时,String 类型是更好的选择。比如说计数器; 页面缓存、Token 缓存; 存储 JSON 字符串; 分布式锁等; 如果是对象数据, 如果你的字段非常少,或者数据规模较小时,String 类型更简单且节省存储、开销较少; 需要频繁访问整个对象,而不是单个字段时,使用 String 可以减少 Redis 操作次数,提升性能。

Redis String 优化策略: Redis String 底层存储编码为 int 整型编码embstr 嵌入式字符串编码(<= 44字节)raw 常规字符串编码(>44 字节)Redis 会根据存储的数据内容和长度,自动在这些编码之间进行切换,以提高内存利用率和访问效率。使用 embstr 编码,可以将字符串数据存储在同一个连续的内存块中,减少内存碎片,提高访问速度,所以, embstr 性能更优,占用较少的 CPU 和内存。而 raw 需要分配更多内存,适合大数据存储。 查看 Redis String 编码类型:

set key:1 "hello"

object encoding key:1

set key:2 100

object encoding key:2