傻大方


首页 > 潮·科技 > >

大数据|Redis五大数据类型之String(三)



按关键词阅读: 大数据

大数据|Redis五大数据类型之String(三)

文章图片

大数据|Redis五大数据类型之String(三)

文章图片


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、当字符串长度小于1M时候 , 扩容是加倍现有空间 。 (扩容后空间=当前空间*2)
2、当字符串长度大于1M时候 , 扩容时 , 一次只会扩容1M的空间 。
3、字符串最大长度512M 。
二、redis操作string字符串(1)单个key操作

1、set命令作用:添加键值对数据到redis 。

【大数据|Redis五大数据类型之String(三)】set key名称 value值    # 成功返回OK , 失败报错
2、get命令作用:获取redis中指定key的value值 。


get key名称  # 返回key对应的value值
3、append命令作用:追加到原值的末尾 。


# 将给定的value值 , 追加到原先key的value值后面
# 返回追加后 , value值的长度
append key名称 追加的value值
4、strlen命令作用:获得指定key的value长度 。


strlen key名称
5、setnx命令作用:设置key-value , 当key不存在时候 , 才会设置key的值 。


setnx key名称 value值    # 成功返回1 , 失败返回0
6、incr命令作用:将key中存储的数字值增加1 , 只能对数字值操作 。 如果为空 , 则新增值等于1 。 注意:在redis中 , incr、decr操作 , 是具备原子性的 。


incr key名称    # 返回加1后的数字值    # 返回结果值
7、decr命令作用:将key中存储的数字值减少1 , 只能对数字值操作 。 如果为空 , 则新增值等于-1 。


decr key名称    # 返回减1后的数字值    # 返回结果值
8、incrby命令作用:将key中存储的数字值增加自定义值step , 只能对数字值操作 。


incrby key名称 增加多少值step    # 返回结果值
9、decrby命令作用:将key中存储的数字值减少自定义值 , 只能对数字值操作 。


decrby key名称 减少多少值    # 返回结果值
具体代码操作案例如下:


(2)多个key操作1、mset命令作用:同时设置多个key-value的值 。

mset key1名称 value1值 key2名称 value2值....    # 成功返回OK , 失败报错
2、mget命令作用:同时获取多个key的value值 。


mget key1名称 key2名称 key3名称....
3、msetnx命令作用:同时设置多个key-value的值 , 只有当key都不存在时候 , 才会设置成功 。 (注意:原子性 , 有一个失败 , 则都失败 。 )


# 成功返回1 , 失败返回0
msetnx key1名称 value1值 key2名称 value2值 key3名称 value3值....
具体操作代码案例如下:


(3)value操作1、getrange命令作用:获取value值的范围 。 类似于substring , 前后都包含 。

getrange key名称 起始位置 结束位置
  • 起始位置从0开始 。

  • 结束位置:-1表示所有 。 结束位置大于value值长度 , 则获取所有字符 。
  • 例如:getrange key名称 0 -1 获取所有 。
2、getset命令作用:使用新值替换旧值 。

getset key名称 新值value    # 替换成功 , 返回旧值
具体操作代码案例如下:


(4)设置过期时间1、setex命令作用:设置key-value时候 , 同时设置过期时间 , 单位:秒 。

setex key名称 过期时间 value值


稿源:(未知)

【傻大方】网址:/c/1122a05Y2021.html

标题:大数据|Redis五大数据类型之String(三)


上一篇:淘宝|淘宝商家是怎么删差评的?淘宝店有差评如何处理?

下一篇:苹果|10年前,17岁高中生黑诊所卖肾换苹果手机,获赔147万却葬送人生