Redis

目录

认识NoSQL

认识Redis

Redis数据结构介绍

Redis通用命令

String类型

Hash类型

List类型

Set类型

SortedSet类型


认识NoSQL

NoSql可以翻译做Not Only Sql(不仅仅是SQL),或者是No Sql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库,因此也称之为非关系型数据库

Redis_第1张图片

认识Redis

Redis诞生于2009年,全称Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库.

特征

  • 键值(key-value)型,value支持多种不同数据结构,功能丰富

  • 单线程,每个命令具备原子性

  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)

  • 支持数据持久化

  • 支持主从集群、分片集群

  • 支持多语言客户端

Redis数据结构介绍

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样

Redis_第2张图片

Redis通用命令

通用指令是部分数据类型的,都可以使用的指令,常见的有:

  • KEYS:查看符合模板的所有key

  • DEL:删除一个指定的key

  • EXISTS:判断key是否存在

  • EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除

  • TTL:查看一个KEY的剩余有效期

通过help [command] 可以查看一个命令的具体用法,例如:

# 查看keys命令的帮助消息:
127.0.0.1:6379> help keys
​
KEYS pattern
summary: Find all keys matching the given pattern
since: 1.0.0
group: generic

String类型

String类型,也就是字符串类型,是Redis中最简单的存储类型

其value是字符串,不过根据字符串的格式不同,又可以分为3类:

  • string:普通字符串

  • int:整数类型,可以做自增自减操作

  • float:浮点类型,可以做自增自减操作

不管是哪种形式,底层都是字节数组形式存储,只不过是编码方式不同.字符串类型最大空间不能超过512MB

Hash类型

Hash类型,也叫散列,其value是一个无序字典,类似Java中的HashMap结构.

String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便

Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD

Redis_第3张图片

List类型

Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构.既可以支持正向检索,也可以支持反向检索

特征

  • 有序

  • 元素可以重复

  • 插入和删除快

  • 查询速度一般

常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等

Set类型

Redis的Set结构与Java中的HashSet类型,可以看做是一个value为null的HashMap.因为也是一个Hash表,因此具备与HashSet类型的特征:

  • 无序

  • 元素不可重复

  • 查找快

  • 支持交集,并集,差集等功能

SortedSet类型

Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类型,但底层数据结构差别很大.SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表.

特征

  • 可排序

  • 元素不重复

  • 查询速度快

因为有可排序功能,经常被用来实现排行榜的功能

你可能感兴趣的:(redis)