数据类型
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类型的使用