Redis基础
Redis基本数据类型
Redis是以键值对存储信息的,所以对象又分为键对象和值对象,即存储一个key-value对象的时候会创建两个对象,键对象是一个字符串类型,而值对象可以是五大对象中的任意一个。
Redis特点
- 键值(Key-Value)型,Value支持多种不同的数据结构,功能丰富
- 单线程,每个命令具有原子性
- 低延迟,速度快(基于内存、IO多路复用、良好的编码)
- 支持数据持久化
- 支持主从集群、分片集群
- 支持多语言客户端
基本数据类型
-
String
String类型也就是字符串类型,是Redis中最简单的数据类型,其中value是字符串,但是根据字符串的格式不同,又可以分为
- string 普通字符串类型
- int 整型,可以做自增、自减操作
- float 浮点类型,也可以做自增、自减操作
无论是哪种格式,低层都是以字节数组的形式进行存储,只不过编码方式不一样,字符串类型的最大空间不能超过512M。
String常用的命令有:
-
List
Redis中的List类型与Java中LinkedList相似,可以看作是一个双向链表结构,也可以当做栈来使用。
特征也与LinkedList类似:- 有序
- 元素可以重复
- 插入和删除快
- 查询速度一般
List常用命令有:
-
Set
Redis的Set结构与Java中的HashSet类似,可以看做是一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet类似的特征:- 无序
- 元素不可重复
- 查找快
- 支持交集、并集、差集等功能
Set常见的命令有:
-
ZSet
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。- SortedSet具备下列特性:
- 可排序
- 元素不重复
- 查询速度快
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。
SortedSet的常见命令有:
-
Hash
Hash类型,也叫做散列,其中value是一个无需的字典,类似于Java中HashMap结构,String结构是将对象序列化为Json字符串后进行储存,当我们要修改对象的某个属性值的时候很不方便,Hash就可以解决这个问题
Hah结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD
Hash常用的命令有: