0
点赞
收藏
分享

微信扫一扫

【Redis缓存】第一章:String类型的使用

孟佳 2022-04-16 阅读 82

数据类型

Redis有哪些数据类型?

redis主要包含5种数据类型:String,List,Set,Zset,Hash,满足大部分的需求。

字符串String

简介

1.String是redis最基本的类型,一个key对应一个value。
2.String是二进制安全的,Redis可以包含任何数据,比如jpg图片或者序列化
的对象。
3.一个redis中字符串value最多可以是512M
常用命令:

常用命令

set 添加键值对
get 查询对应键值
append 将给定的 追加到原值的末尾
strlen 获得值的长度
setnx 只有在 key 不存在时 设置 key 的值
incr
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1
decr
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1
incrby / decrby <步长>将 key 中储存的数字值增减。自定义步长。

数据结构

String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.
在这里插入图片描述
如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。

实现场景

1.可以通过set key value 实现单值缓存。
2.可以通过setnx product:10001 true 实现分布式锁,返回1表示获取锁成功,返回0表示获取锁失败,这个值已经被设置过。
3.可以通过incr acticle:readcount{文章id} 实现计数器,每执行一次加一
4.可以通过incrby orderId 1000实现分布式系统全局序列号,一次性拿1000个序列号,在redis里面加一,批量生成序列号提升性能。因为string类型是二进制安全的,可以用来存放图片,视频等内容,另外由于Redis的高性能读写功能,而string类型的value也可以是数字,可以用作计数器(INCR,DECR),比如分布式环境中统计系统的在线人数,秒杀等。

【Redis缓存】第二章:List类型的使用
【Redis缓存】第三章:Set类型的使用
【Redis缓存】第四章:Hash类型的使用
【Redis缓存】第五章:Zset类型的使用

举报

相关推荐

0 条评论