2.2 字符串String
2.2.1 简介
? Redis最基本的数据类型之一,可以理解成与Memcache一样的string类型,一个key对应1个value它是二进制安全的,意味着可以包含任何数据,如jpg图片、序列化的对象。String类value大小限制为512M。
2.2.2 常用命令
? set :添加键值对
? *NX:当数据库中key不存在时,可以将key-value添加数据库
? *XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
? *EX:key的超时秒数
? *PX:key的超时毫秒数,与EX互斥
? get :查询对应键值a
? append :将给定的 追加到原值的末尾
? strlen :获得值的长度
? setnx :只有在 key 不存在时 设置 key 的值
? incr :将 key 中储存的数字值增1(只能对数字值操作,如果为空,新增值为1)
? decr :将 key 中储存的数字值减1(只能对数字值操作,如果为空,新增值为-1)
? incrby <步长>:将 key 中储存的数字值增加步长数值,自定义步长
? incrby <步长>:将 key 中储存的数字值减少步长数值,自定义步长
? incrbyfloat <步长>:将 key 中储存的浮点型数值增加步长数值,自定义步长
? mset :同时设置一个或多个 key-value对
? mget :同时获取一个或多个 value
? msetnx … 同时设置一个或多个 K-V,当且仅当所有给定 key 都不存在时成功
? getrange <起始位置><结束位置>: 获得值的范围,类似java中的substring,包前也包后[闭区间]
? setrange <起始位置>:用 覆写所储存的字符串值,从<起始位置>开始(索引从0开始)
? setex <过期时间>:设置键值的同时,设置过期时间,单位秒
? getset :以新换旧,设置了新值同时获得旧值
2.2.3 数据结构
? String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。
?
? 内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。
|