Redis学习从入门到精通:一篇全攻略

发表时间: 2022-06-27 15:28

一、哪些大厂在使用Redis?


  • github
  • twitter
  • 微博
  • Stack Overflow
  • 阿里巴巴
  • 百度
  • 美团
  • 搜狐


Redis的应用场景有哪些?


Redis 的应用场景包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统。



Redis的数据类型及主要特性


Redis提供的数据类型主要分为5种自有类型和一种自定义类型,这5种自有类型包括:String类型、哈希类型、列表类型、集合类型和顺序集合类型。



二、认识Redis


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



特征:


  • 键值(key-value)型,value支持多种不同数据结构,功能丰富
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
  • 支持数据持久化
  • 支持主从集群、分片集群
  • 支持多语言客户端


1.Redis数据结构介绍



Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands )可以查看到不同的命令:



2.Redis通用命令


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


  • KEYS:查看符合模板的所有key
  • DEL:删除一个指定的key
  • EXISTS:判断key是否存在
  • EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
  • TTL:查看一个KEY的剩余有效期


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



3.String类型


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


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


  • string:普通字符串
  • int:整数类型,可以做自增、自减操作
  • float:浮点类型,可以做自增、自减操作


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


String的常见命令有:


  • SET:添加或者修改已经存在的一个String类型的键值对
  • GET:根据key获取String类型的value
  • MSET:批量添加多个String类型的键值对
  • MGET:根据多个key获取多个String类型的value
  • INCR:让一个整型的key自增1
  • INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2 让num值自增2
  • INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
  • SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
  • SETEX:添加一个String类型的键值对,并且指定有效期


4.key的结构


Redis的key允许有多个单词形成层级结构,多个单词之间用':'隔开,格式如下:



这个格式并非固定,也可以根据自己的需求来删除或添加词条。


例如我们的项目名称叫 heima,有user和product两种不同类型的数据,我们可以这样定义key:


  • user相关的key:heima:user:1
  • product相关的key:heima:product:1


如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:



小总结:

String类型的三种格式:


  • 字符串
  • int
  • float


Redis的key的格式:


  • [项目名]:[业务名]:[类型]:[id]


时间有限,先分享到这,大家慢慢自己学,Redis入门到精通,Java核心缓存技术教程这个实战篇看完了,也打算告一段落看看其他技术了。但这视频确实录的很好,就针对redis设计,也不刻意去弄复杂,对一个个技术来学的话很有帮助。


完完整整看下来的话,业务实现的逻辑思路和写代码过程以及debug的思路也是很值得学习的,真的纵享丝滑。

有帮助记得关注三宝哦,持续输入编程高质量干货文章!!