Redis数据类型

简介

1、Redis是一个Map类型的存储方式,采用key-value形式存储数据

2、数据类型是指value的类型,key永远是字符串

3、所有操作都是原子性的,单线程处理所有业务,命令一个一个执行

4、数据时效性控制,适用热点新闻、热门商品数据存储

与java对比数据类型

1 2 3 4 5 6 7
string -- String hash -- Hashmap list -- LinkList set -- HashSet sorted_set -- TreeSet nil -- null

string

1、原子自增,分表存储场景保证主键ID唯一(Oracle具有sequence设定)

hash

1、适用频繁更新,存储对象,多个key-value对

2、value只能存储字符串,不能嵌套

3、数据未获取到,对应的值为nil

4、1个hash最大存储2^32-1个键值对,约40亿

5、底层hash表

list

1、底层双向链表

2、规定时间内获取并移除数据

3、按数据进入存储空间的顺序进行排序

4、对数据进行分页,第1页来自list,第2页数据库加载

set

1、保存大量数据,优化查询效率,不允许数据重复

2、存储结构同hash

3、只有键没有值的hash

zset(sorted_set)

1、根据数据自身特征进行排序

2、在set的存储结构基础上增加可排序字段

微信每4个小时只能投1票

给用户设置1个唯一id,有效时长为4小时,id存在说明已投票

热点数据定时刷新

用户主键和属性值作为key,定时刷新

购物车

hash,商品信息单独保存一个hash

抢购

商家id作为key,商品id作为field,商品数量作为value,降值方式控制产品数量

朋友圈点赞

list

微博关注列表

list

随机推荐,点歌单推荐

set

集合交、并、差集

set

访问量去重、黑名单

set

海选投票、排行榜

zset

会员体验失效

zset

计数器

利用最大值,超过抛出异常

浙ICP备11005866号-12