当前位置:网站首页>redis的入门学习到起飞,就这一篇搞定
redis的入门学习到起飞,就这一篇搞定
2022-06-28 06:43:00 【测试小扎】
一、哪些大厂在使用Redis?
- github
- 微博
- 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设计,也不刻意去弄复杂,对一个个技术来学的话很有帮助。
完完整整看下来的话,业务实现的逻辑思路和写代码过程以及debug的思路也是很值得学习的,真的纵享丝滑。
Redis入门到实战教程,全面透析redis底层原理+redis分布式锁+企业

边栏推荐
- AutoCAD C# 多段线自相交检测
- 【Rust翻譯】從頭實現Rust异步執行器
- Call interface event API common event methods
- D3D11_ Chili_ Tutorial (3): design a bindable/drawable system
- Yolov5 adds a small target detection layer
- 异常处理(一)——空指针和数组索引越界
- Niubi 666, this project makes web page making as simple as building blocks
- CMAKE小知识
- EasyUI reset multi condition query
- @RequestParam
猜你喜欢

微信小程序编译页面空白bug的原因

Techo Day 腾讯技术开放日,6月28日线上等你!

death_ satan/hyperf-validate

Unity packaging webgl uses IIS to solve the error

AutoCAD C polyline small acute angle detection

JDBC learning (I) -- implementing simple CRUD operations

代码没写错,渲染页面不显示原因

Eyebeam advanced settings

助力涨点 | YOLOv5结合Alpha-IoU

Interpretation of Blog
随机推荐
Freeswitch sets the maximum call duration
[rust daily] published on rust 1.43.0 on April 23, 2020
Caused by: com. fasterxml. jackson. databind. exc.InvalidDefinitionException: Cannot construct instance
FPGA - 7系列 FPGA SelectIO -08- 高级逻辑资源之OSERDESE2
RN7302三相电量检测(基于STM32单片机)
Puge -- singleton mode
pytorch RNN 学习笔记
Freeswitch uses Mod_ Shot module plays mp3
普歌 -- 单例模式
Hungry for a long time, the brain will enter the "power saving mode"! Your senses are weakened and you can't see clearly
助力涨点 | YOLOv5结合Alpha-IoU
Paper recommendation: efficientnetv2 - get smaller models and faster training speed through NAS, scaling and fused mbconv
ThreadLocal
异常处理(一)——空指针和数组索引越界
Students who do not understand the code can also send their own token. The current universal dividend model can be divided into BSC and any generation B
[rust translation] implement rust asynchronous actuator from scratch
手把手教你用Ucos
三极管驱动无刷电机
Introduction to Qualcomm platform WiFi -- Wi Fi display software
Note that JPA uses a custom VO to receive jpql query results