一、redis简介
二、Redis基本数据类型(五种)
redis 自身是一个map,其中所有的数据都是采用key:value
的形式进行存储;数据类型指的是存储的数据的类型,也就是Value部分的类型,key部分永远都是字符串类型
高级数据类型有三种:Bitmaps,HyperLogLog, GEO
1. String字符串(对应Java-String)
-
存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
-
存储数据格式:一个存储空间保存一个数据
-
存储内容:通常使用字符串,如果字符串以整数的形式展示可以作为数字操作使用
-
使用场景:大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键 id 必须保证统一性 ,不能重复;使用这个作为主键自增可以确保唯一性
redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
2. Hash哈希散列列表(对应Java-HashMap)
-
存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息
-
需要的存储结构:一个存储空间保存多个键值对数据
-
hash类型:底层使用哈希表结构实现数据存储
-
使用场景: 电商网站购物车设计与实现;应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计
- hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应值为null
- 每个hash可以存储2的32次方减1个键值对
3. List列表(对应Java-LinkedList)
- 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
- 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
- list类型:保存多个数据,底层使用双向链表存储结构实现
- 业务场景:朋友圈点赞,按照点赞顺序显示点赞好友信息;应用于具有操作先后顺序的数据控制
4. Set集合(对应Java-HashSet)
-
新的存储需求:存储大量的数据,在查询方面提供更高的效率
-
需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询
-
set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的
-
应用场景:应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐, 大V推荐等;应用于同类型数据的快速去重
5. SortedSet(对应Java-TreeSet)
- 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
- 需要的存储结构:新的存储模型,可以保存可排序的数据
- sorted_set类型