Redis 字符串(String)
<1> 说明
String是Redis最基本的类型
String类型事二进制安全的,意味着Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
String是Redis 的最近本数据类型,一个字符串value 最多可以是512M
<2> 数据结构
String的数据结构为简单动态字符串(simple Dynamic String ,缩写SDS)
是可以修改的字符串,内部结构实现上类似Java的ArrayList ,采用预分配冗余空间的方式来减少内存的频繁分配。
如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M
<3>常见命令
- 加入数据命令
set < key> < value> - 设置相同的key ,会覆盖原来的数据
- 根据key取值
get < key> - 追加数据
append < key> < value> - 获取值的长度
strlen < key> - 只在key不存在时,设置key的值
setnx < key> < value> - 将key中存储的数字值减一
decr < key> - 将key中存储的数字值加一
incr < key> - 将key中共存储的数字值增减,自定义步长
incrby < key> 3 (增加) - decrby < key> 4 (减少)
- 同时设置一个过着多个key-value
mset < key1> < value1> < key2> < value2>… - 同时获取一个或者多个value
mget < key1> < key2> … - 同时设置一个或者多个key-value 对,当且仅当给定key都不存在
msetnx < value1> < key2> < value2>… - 获取值的范围(相当于字符串截取)
getrange < key> < 起始位置> < 结束位置> - 用value 复写 key所春初的字符串值,从< 起始位置>开始(索引从0开始)
setrange < key> < 开始位置> < value> - 设置键值的同时,设置过期时间,单位秒
setex < key> < 过期时间> < value> - 以新换旧,设置新值的同时获取旧值
getset < key> < value>