redis 阶段总结:类型api,springboot中使用,各个类型的应用场景

字符串string

set 键 值

get 键

取得键的值

incr 键

如果是值是整形的话值就会自增1

ttle

获取键到期的剩余时间

type 键

可以得到键的类型

rename 旧键 新键

把旧键的名字改成新的键

 

列表list

lpush list名 元素

list左边加入一个元素

rpush lpop ropo 同理

llen list名

获得表中元素的个数

lrange list名 m n

列出m-n的元素

0是第一个元素

m-n不包括n

 

是一个字符串的链表

 

字典hahset

hset 字典名 字典键 字典值

给字典加入键和值

如果字典不存在就直接新建

hgetall 字典名

得到字典的键和值

顺序是第一个键、第一个值、第二个键、第二个值…

hkey 字典名

得到所有字典的键

hvals 字典名

得到所有字典的值

 

给同一个键添加值会把原来的键进行一个覆盖

 

集合set

SAAD 集合名 元素

添加元素

SMEMBERS 集合名

输出集合所有元素

SISMEMBER 集合名 元素名

看元素是否属于集合

如果属于就返回1,否则返回0

 

无语,其实也都可以用小写……

set 的元素是不可重复的,也就是每个元素都是唯一的

 

有序集合 sorted set

zadd 集合名 分数 元素名

给集合添加一个元素(携带分数)

zcard 集合名

得到集合的元素的个数

zcount 集合名 m n

得到分数m-n之间的元素个数

包含m n

zrank 集合名 元素名

得到元素名的排名

最小值排在第一位 输出0

zrangebyscore 集合名 m m

从m-n按分数升序给出集合的元素

 

spring boot中使用

使用步骤

  1. 在启动类打上@EnableCaching表示启动缓存
  2. 对用在service层需要缓存的类打上@Cacheconfig(cacheName="redis中管理这个类所有keys的名称"),用于查询

对立面的方法打上@Cacheable(key='前缀名'+'#p0'),#p0表示第一个参数

方法返回值作为key,返回一条记录的时候是一个key,返回多条记录的机会是一个key的集合

比如一条记录是单个查询,多条记录是分页查询

总之返回的值会放到redis中

  1. 对增删改用CacheEvict(allEntries=true)表示每次先删除redis中所有相关的数据

因为redis是nosql的,所有对数据库的改变,不会自动关联

比如增加一条数据,不会在这类数据集合中增加,比如不会分页中增加

在mysql中增加一条分页里面就会自动增加一条

 

因此对数据库的改动都需要把相关的缓存清空以保证一致性

注意

对于默写在方法内部调用的缓存管理的方法通过框架的bean拿到这个缓存管理的方法,而不能自己调用缓存管理的方法

这么做是为了激活spring的aop,因为缓存是通过aop来实现的,而aop需要通过spring的bean来调用才能实现

自己自己调用是不能激活aop机制,从而不能实现缓存

 

redis各个类型在springboot中的使用

我个人感觉@Cacheable注解的方法只能利用redis的string和sorted set类型

sorted set 用于存放 当前类持有的所有的 key

string 则用于存放所有key对于的value,这个好像是默认的,你返回任何东西都给转化成一条string

如果想指定使用hash 或list 可能就只能通过 配置redis template类的办法了

 

各个类型的使用场景

string

最多是做sql数据库的缓存

把一条记录缓存为string类型的value

比如就是字段名,字段值,字段名,字段值

然后通过框架转化为json传给客户端

hash

比较适合对象的存储

因为对象有两个重要的数据,也就是属性名和属性值

那么就可以把对象作为hash的键,对象的各个属性和属性值作为其中的一系列的元素

list

list两端的数据性能比较好,所以适合处理获取最新或者最早的元素的场景

比如最新的新闻

set

set的特点是元素都是唯一的无序的,set做一些聚合的操作效率非常高,比sql要快

比如求交集、并集

比如求两用户的共同好友就可以用set

类似的求两个用户共同喜欢的商品,共同阅读的文章之类的就比较快

sorted set

sorted set的特点就是提供一个分数作为排序的依据

那么就适合有排序需求的场景

比如可以给用户亲密度的好友进行打分并排序

又比如根据用户的点击率作为分数进行一个排序

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概要介绍: 本课程主要是介绍并实战一款java间件~redisson,介绍redisson相关的核心技术栈及其典型的应用场景,其应用场景就包括布隆过滤器、限流器、短信发送、实时/定时邮件发送、数据字典、分布式服务调度等等,在业界号称是在java项目里正确使用redis的姿势。本课程的目标就在于带领各位小伙伴一起学习、攻克redisson,更好地巩固自己的核心竞争力,而至于跳槽涨薪,自然不在话下!  课程内容: 说起redisson,可能大伙儿不是很熟悉,但如果说起redis,想必肯定很多人都晓得。没错,这家伙字如其名,它就是架设在redis基础上的一款综合性的、新型的间件,号称是java企业级应用开发正确使用redis的姿势/客户端实例。 它是架设在redis基础之上,但拥有的功能却远远多于原生Redis 所提供的,比如分布式对象、分布式集合体系、分布式锁以及分布式服务调度等一系列具有分布式特性的对象实例… 而这些东西debug将在本门课程进行淋漓尽致的介绍并实战,除此之外,我们将基于spring boot2.0搭建的多模块项目实战典型的应用场景:对象存储、数据字典、短信发送、实时/定时邮件发送、布隆过滤器、限流组件、分布式服务调度....课程大纲如下所示: 下面罗列一下比较典型的核心技术栈及其实际业务场景的实战,如下图所示为redisson基于订阅-发布模式的核心技术~主题Topic的实际业务场景,即实时发送邮件: 而下图则是基于“多值映射MultiMap”数据结构实战实现的关于“数据字典”的缓存管理: 除此之外,我们还讲解了可以与分布式服务调度间件dubbo相媲美的功能:分布式远程服务调度,在课程我们动手搭建了两个项目,用于分别充当“生产者”与“消费者”角色,最终通过redisson的“服务调度组件”实现服务与服务之间、接口与接口之间的调用!  课程收益: (1)认识并掌握redisson为何物、常见的几种典型数据结构-分布式对象、集合、服务的应用及其典型应用场景的实战; (2)掌握如何基于spring boot2.0整合redisson搭建企业级多模块项目,并以此为奠基,实战企业级应用系统常见的业务场景,巩固相应的技术栈! (3)站在项目管理与技术精进的角度,掌握对于给定的功能模块进行业务流程图的绘制、分析、模块划分、代码实战与性能测试和改进,提高编码能力与其他软实力; (4)对于Java微服务、分布式、springboot精进者而言,学完本课程,不仅可以巩固提高间件的实战能力,其典型的应用场景更有助于面试、助力相关知识点的扫盲! 如下图所示: 关键字:Spring Boot,Redis,缓存穿透,缓存击穿,缓存雪崩,红包系统,Mybatis,高并发,多线程并发编程,发送邮件,列表List,集合Set,排行榜,有序集合SortedSet,哈希Hash ,进阶实战,面试,微服务、分布式 适用人群:redisson学习者,分布式间件实战者,微服务学习者,java学习者,spring boot进阶实战者,redis进阶实战者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值