按关键词阅读: 大数据
文章图片
文章图片
Redis中有五种基础的数据类型 , 分别是:string字符串、List集合、Set集合、Hash表、Zset集合(redis 6.0开始新增了三种数据类型:Bitmaps、HyperLogLog、Geospatial , 在后面的文章会介绍) , 这篇文章介绍一下基础数据类型中的string字符串类型 。
一、redis中string字符串数据结构redis中的string底层是使用简单动态字符串(Simple Dynamic String , 简称SDS)实现的 , 是可以修改内容的字符串 , 类似于java中的ArrayList数据结构 。
string字符串采用预分配冗余空间的方式来减少内存的频繁分配 。
redis中string字符串实际分配的空间capacity一般要高于实际字符串长度 。
二、redis操作string字符串(1)单个key操作
redis中string字符串扩容机制:
1、当字符串长度小于1M时候 , 扩容是加倍现有空间 。 (扩容后空间=当前空间*2)
2、当字符串长度大于1M时候 , 扩容时 , 一次只会扩容1M的空间 。
3、字符串最大长度512M 。
1、set命令作用:添加键值对数据到redis 。
2、get命令作用:获取redis中指定key的value值 。
【大数据|Redis五大数据类型之String(三)】set key名称 value值 # 成功返回OK , 失败报错
3、append命令作用:追加到原值的末尾 。
get key名称 # 返回key对应的value值
4、strlen命令作用:获得指定key的value长度 。
# 将给定的value值 , 追加到原先key的value值后面
# 返回追加后 , value值的长度
append key名称 追加的value值
5、setnx命令作用:设置key-value , 当key不存在时候 , 才会设置key的值 。
strlen key名称
6、incr命令作用:将key中存储的数字值增加1 , 只能对数字值操作 。 如果为空 , 则新增值等于1 。 注意:在redis中 , incr、decr操作 , 是具备原子性的 。
setnx key名称 value值 # 成功返回1 , 失败返回0
7、decr命令作用:将key中存储的数字值减少1 , 只能对数字值操作 。 如果为空 , 则新增值等于-1 。
incr key名称 # 返回加1后的数字值 # 返回结果值
8、incrby命令作用:将key中存储的数字值增加自定义值step , 只能对数字值操作 。
decr key名称 # 返回减1后的数字值 # 返回结果值
9、decrby命令作用:将key中存储的数字值减少自定义值 , 只能对数字值操作 。
incrby key名称 增加多少值step # 返回结果值
具体代码操作案例如下:
decrby key名称 减少多少值 # 返回结果值
(2)多个key操作1、mset命令作用:同时设置多个key-value的值 。
2、mget命令作用:同时获取多个key的value值 。
mset key1名称 value1值 key2名称 value2值.... # 成功返回OK , 失败报错
3、msetnx命令作用:同时设置多个key-value的值 , 只有当key都不存在时候 , 才会设置成功 。 (注意:原子性 , 有一个失败 , 则都失败 。 )
mget key1名称 key2名称 key3名称....
具体操作代码案例如下:
# 成功返回1 , 失败返回0
msetnx key1名称 value1值 key2名称 value2值 key3名称 value3值....
(3)value操作1、getrange命令作用:获取value值的范围 。 类似于substring , 前后都包含 。
getrange key名称 起始位置 结束位置
- 起始位置从0开始 。
- 结束位置:-1表示所有 。 结束位置大于value值长度 , 则获取所有字符 。
- 例如:getrange key名称 0 -1 获取所有 。
具体操作代码案例如下:
getset key名称 新值value # 替换成功 , 返回旧值
(4)设置过期时间1、setex命令作用:设置key-value时候 , 同时设置过期时间 , 单位:秒 。
setex key名称 过期时间 value值
稿源:(未知)
【傻大方】网址:/c/1122a05Y2021.html
标题:大数据|Redis五大数据类型之String(三)