字符串
一、认识
在 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