Redis SpringBoot项目学习

Redis 是一个高性能的key-value内存数据库。它支持常用的5种数据结构:String字符串、Hash哈希表、List列表、Set集合、Zset有序集合 等数据类型。

Redis它解决了2个问题:
第一个是:性能

通常数据库的读操作,一般都要几十毫秒,而redisd的读操作一般仅需不到1毫秒。通常只要把数据库的数据缓存进redis,就能得到几十倍甚至上百倍的性能提升。
第二个是:并发

在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常,甚至卡死在数据库中。为了解决大并发卡死的问题,一般的做法是采用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问数据库。

1.String

Redis 中的字符串,直接就是按照字节数组(二进制数据)的方式存储的!不会做任何的编码转换,存的是啥,取出来就还是啥!不仅仅可以存储文本数据,还支持存储整数、文本、JSON、二进制数据等。

字符串类型是Redis最基础的数据类型,关于字符串需要特别注意:

首先Redis 中所有的键的类型都是字符串类型,而且其他几种数据结构也都是在字符串类似基础上构建的,例如列表和集合的元素类型是字符串类型,所以字符串类型能为其他4种数据结构的学习奠定基础。

其次,如下图所示,字符串类型的值实际可以是字符串,包含一般格式的字符串或者类似JSON、XML格式的字符串;数字,可以是整型或者浮点型;甚至是二进制流数据,例如图片、音频、视频等。不过一个字符串的最大值不能超过512 MB。

2.Hash

  • Redis的hash数据结构,其实就是string的升级版,它把string 数据结构的key value,中的value类型升级为hash(和java的hash一样的结构)
    Map<String, HashMap<String,String>> hash=new HashMap<String,HashMap<String,String>>();
  • 每个 hash的存储大小: 可以存储 2的(32 - 1)方的 键值对(40多亿)

Redis存储java对象,一般是String 或 Hash 两种,那到底什么时候用String ? 什么时候用hash ?

String的存储通常用在频繁读操作 ,它的存储格式是json,即把java对象转换为json,然后存入redis.
Hash的存储场景应用在频繁写操作 ,即,当对象的某个属性频繁修改时,不适用string+json的数据结构,因为不灵活,每次修改都需要把整个对象转换为json存储。

如果采用hash,就可以针对某个属性单独修改,不用序列号去修改整个对象。例如,商品的库存、价格、关注数、评价数经常变动时,就使用存储hash结果

相关推荐
what丶k3 小时前
深入解析Redis数据持久化:RBD机制原理、实操与生产最佳实践
数据库·redis·缓存
像少年啦飞驰点、5 小时前
零基础入门 Spring Boot:从“Hello World”到可上线的 Web 应用全闭环指南
java·spring boot·web开发·编程入门·后端开发
有来技术5 小时前
Spring Boot 4 + Vue3 企业级多租户 SaaS:从共享 Schema 架构到商业化套餐设计
java·vue.js·spring boot·后端
东东5165 小时前
xxx医患档案管理系统
java·spring boot·vue·毕业设计·智慧城市
Dreamboat-L6 小时前
Redis及其两种持久化技术详解
数据库·redis·缓存
东东5166 小时前
学院个人信息管理系统 (springboot+vue)
vue.js·spring boot·后端·个人开发·毕设
三水不滴7 小时前
Redis缓存更新策略
数据库·经验分享·redis·笔记·后端·缓存
企鹅侠客7 小时前
第35章—内核解析篇:Redis内存淘汰机制
数据库·redis
曹轲恒7 小时前
【Redis持久化核心】AOF/RDB通俗详解+多场景对比
数据库·redis·bootstrap
优雅的潮叭8 小时前
cud编程之 reduce
android·redis·缓存