大数据|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 。

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中存储的数字值减少自定义值 , 只能对数字值操作 。

【大数据|Redis五大数据类型之String(三)】
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都不存在时候 , 才会设置成功 。 (注意:原子性 , 有一个失败 , 则都失败 。 )