当前位置:首页 > 教程 > 正文内容

redis整合nginx(redis整合spring)

2023-06-04 09:30:07教程1

redis整合spring

首先看你用的是boot几版本的,1版本只需要导入spring-boot-starter-data-redis 2版本的还需要commons-pool2包

1版本配置

spring:

redis:

host: Ip地址

port: 6379 # 下面这些可以不加

jedis:

pool:

max-active: 8 # 连接池最大连接数(使用负值表示没有限制)

max-idle: 8 # 连接池中的最大空闲连接 max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)

min-idle: 0 # 连接池中的最小空闲连接

2版本配置

#redis配置 Lettuce 是一个可伸缩线程安全的 Redis 客户端,多个线程可以共享同一个 RedisConnection,它利用优秀 netty NIO 框架来高效地管理多个连接

spring.redis.host=Ip地址

spring.redis.port=6379

spring.redis.password=填写你的密码

# 连接超时时间(毫秒)

spring.redis.timeout=36000ms

# Redis默认情况下有16个分片,这里配置具体使用的分片,默认是0

spring.redis.database=0

# 连接池最大连接数(使用负值表示没有限制) 默认 8

spring.redis.lettuce.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1

spring.redis.lettuce.pool.max-wait=-1ms

# 连接池中的最大空闲连接 默认 8

spring.redis.lettuce.pool.max-idle=8

# 连接池中的最小空闲连接 默认 0

spring.redis.lettuce.pool.min-idle=0

redis整合mybatis

1、快速整合第三方框架,比如redis,mybatis等等2、全部采用注解方式,没有繁琐的xml配置。

3、内置http服务器,比如jetty,tomcat。不需要额外的去集成下载tomcat。

spring整合redis基于配置文件

根据ID做新增或者update,主键上打@Id。

一 Spring Data Jpa的更新删除:

JPA可以看作标准化的Hibernate。虽然规定了基本的缓存接口,但是具体实现还是要看具体产品。

可以通过Hibernate进行了解。更新删除的时候JPA都需要先维护缓存才可以删除。如果你要直接删除,必须自己写EQL语句。

二 spring data jpa 怎么使用序列:

1 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能。

2 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业。

3 Key-Value - 集成了 Redis 和 Riak ,提供多个常用场景下的简单封装。

4 Document - 集成文档数据库:CouchDB 和 MongoDB 并提供基本的配置映射和资料库支持。

5 Graph - 集成 Neo4j 提供强大的基于 POJO 的编程模型。

6 Graph Roo AddOn - Roo support for Neo4j。

JDBC Extensions - 支持 Oracle RAD、高级队列和高级数据类型

redis整合jwt

JWT全称是Json Web Token,它是JSON的一个开放的Token标准。JWT有三个特征:

  1)自包含。JWT中包含着Token有意义的信息,拿到Token,解析后就能知道里面包含的信息是什么,而Spring默认生成的Token是UUID,没有任何有意义的信息。它的信息需要根据这个Token去Redis中读取。

  2)密签。发出去的令牌不包含密码等敏感信息,使用指定的秘钥签名。

  3)可扩展。包含的信息可以根据业务需求自己定义

redis整合springboot做缓存

普通分页

一般分页做缓存都是直接查找出来,按页放到缓存里,但是这种缓存方式有很多缺点。

如缓存不能及时更新,一旦数据有变化,所有的之前的分页缓存都失效了。

比如像微博这样的场景,微博下面现在有一个顶次数的排序。这个用传统的分页方式很难应对。

一种思路

最近想到了另一种思路。

数据以ID为key缓存到Redis里;

把数据ID和排序打分存到Redis的skip list,即zset里;

当查找数据时,先从Redis里的skip list取出对应的分页数据,得到ID列表。

用multi get从redis上一次性把ID列表里的所有数据都取出来。如果有缺少某些ID的数据,再从数据库里查找,再一块返回给用户,并把查出来的数据按ID缓存到Redis里。

在最后一步,可以有一些小技巧:

比如在缺少一些ID数据的情况下,先直接返回给用户,然后前端再用ajax请求缺少的ID的数据,再动态刷新。

还有一些可能用Lua脚本合并操作的优化,不过考虑到Lua脚本比较慢,可能要仔细测试。

如果是利用Lua脚本的话,可以在一个请求里完成下面的操作:

查找某页的所有文章,返回已缓存的文章的ID及内容,还有不在缓存里的文章的ID列表。

其它的一些东东:

Lua是支持LRU模式的,即像Memcached一样工作。但是貌似没有见到有人这样用,很是奇怪。

可能是用redis早就准备好把redis做存储了,也不担心内存的容量问题。

redis整合缓存

redis底层是使用C语言来编写的,我们可以看到它的数据结构声明。一个 dict 有两个dictht,一个dictht有一个dictEntry数组,每个dictEntry有next指针,redisObject是真正存储redis各种类型的结构。因此是一个链表结构。从上面的分析可以看出Redis用拉链法解决冲突的哈希表结构。

redis整合mysql

redis数据库属于非关系型数据库,数据存放在内存堆栈中,效率比较高。

其存储数据是以json格式字符串存储字典的,而类似的关系型数据库无法实现这种数据的存储。

在爬取数据时,将数据暂存到redis中,等数据采集完成后,在从redis里将数据读取,并写入mysql数据库中。

在数据采集方面不在多说,只需将项目settings文件下的pipelines管道文件里的本地数据管道注释,让redis来接收数据即可。

代码脚本可自行上网查下,很简单的。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98878816.html