当前位置: 首页 > news >正文

网站制作优化搜索引擎优化论文3000字

网站制作优化,搜索引擎优化论文3000字,百度seo优化推广软件,营销式网站建设一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可…

一.redis的发布订阅

什么 是发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

Redis的发布和订阅

客户端订阅频道发布的消息

频道发布消息 订阅者就可以收到消息

发布订阅的代码实现

1、 打开一个客户端订阅channel1

SUBSCRIBE channel1

2、打开另一个客户端,给channel1发布消息hi

返回的1是订阅者数量

3、打开第一个客户端可以看到发送的消息

二.Redis事务

1.事务简介:

可以一次执行多个命令,本质是一组命令的集合。一个事务中的 所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。

单独的隔离的操作

官网说明

https://redis.io/docs/interact/transactions/

MULTI、EXEC、DISCARD、WATCH。这四个指令构成了 redis 事务处理的基础。

1.MULTI 用来组装一个事务;将命令存放到一个队列里面

2.EXEC 用来执行一个事务;//commit

3.DISCARD 用来取消一个事务;//rollback

4.WATCH 用来监视一些 key,一旦这些 key 在事务执行之前被改变,则取消事务的执行。

例子:

有关事务,经常会遇到的是两类错误:

1.调用 EXEC 之前的错误

“调用 EXEC 之前的错误”,有可能是由于语法有误导致的,也可能时由于内存不足导致的。只要出现某个命令无法成功写入缓冲队列的情况,redis 都会进行记录,在客户端调用 EXEC 时,redis 会拒绝执行这一事务

2.调用 EXEC 之后的错误

而对于“调用 EXEC 之后的错误”,redis 则采取了完全不同的策略,即 redis 不会理睬这些错误,而是继续向下执行事务中的其他命令。这是因为,对于应用层面的错误,并不是 redis 自身需要考虑和处理的问题,所以一个事务中如果某一条命令执行失败,并不会影响接下来的其他命令的执行例子:。

2.redis事务冲突

双十一去购物的时候使用同一张银行卡去付款

10000

一个请求想给金额减8000

一个请求想给金额减5000

一个请求想给金额减1000

解决方案

悲观锁

select * from biao where 1=1 for update;

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,

每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,

这样别人想拿这个数据就会block直到它拿到锁。

传统的关系型数据库里边就用到了很多这种锁机制,

比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

12306抢票

乐观锁

version 1

查余额 10000 version:1

10000>8000 -8000 update uuuu set moner-=8000 where version=1 1.1

10000 -5000 UPDATE uuuuu SET MONTY-=5000 WHERE VERSION=1

2000 2000>1000 UPDATE uuuu SET MONTY-=1000 WHERE VERSION=1.1 1.2

version

select * from ttt where uid =1

version money

1 10000

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,

每次去拿数据的时候都认为别人不会修改,所以不会上锁,

但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,

可以使用版本号等机制。乐观锁适用于多读的应用类型,

这样可以提高吞吐量。Redis就是利用这种check-and-set机制实现事务的。

3.WATCH

“WATCH”可以帮我们实现类似于“乐观锁”的效果,即 CAS(check and set)。

WATCH 本身的作用是“监视 key 是否被改动过”,而且支持同时监视多个 key,只要还没真正触发事务,WATCH 都会尽职尽责的监视,一旦发现某个 key 被修改了,在执行 EXEC 时就会返回 nil,表示事务无法触发。

代码如下:

事物回滚?

三.Redis的使用

java操作redis

1.创建java项目

2.添加redis的依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version>
</dependency>

3.相关API

key的api

string-api

hash-api

set-api

zset-api

list-api

2.redis整合springboot

1.创建springboot项目

过程略

2.加入redis的依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version></parent><groupId>org.example</groupId><artifactId>redis-1</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>redis-1</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test</scope></dependency></dependencies>
</project>

3.编写配置文件

4.设置配置类

注解

@EnableCaching:开启缓存

@Cacheable :标记表示支持缓存

属性:value :缓存的名称    必须指定,也可以是多个

           key:缓存的key,可以为空

           condition:缓存条件,可以为空,返回结果为true才缓存

@CachePut :一般用在保存,更新方法中,使用和@Cacheable基本一致

@CacheEvict:标注在需要清除缓存元素的方法或类上,和@Cacheable类似。

属性:布尔类型allEntries:表示是否要清除缓存中所有元素,默认为false,为true将忽略指定的key

boforelnvocation:清除操作默认在方法执行后触发,方法如果因为抛出异常而未能成功返回时也不会触发清除操作,可以改变触发清除操作的时间,当我们指定该属性值为true时,Spring会在调用该方法之前清除缓存中的指定元素。

查看完成缓存 


文章转载自:
http://wanjiaentoderm.rywn.cn
http://wanjiatortuosity.rywn.cn
http://wanjiastannous.rywn.cn
http://wanjiachurchyard.rywn.cn
http://wanjiaverbicide.rywn.cn
http://wanjiagosport.rywn.cn
http://wanjialimbate.rywn.cn
http://wanjiaplectognath.rywn.cn
http://wanjiapelviscope.rywn.cn
http://wanjiademilitarization.rywn.cn
http://wanjiariddle.rywn.cn
http://wanjiamaffia.rywn.cn
http://wanjiatectogenesis.rywn.cn
http://wanjiawpm.rywn.cn
http://wanjiaciborium.rywn.cn
http://wanjiaadpersonin.rywn.cn
http://wanjiareinsertion.rywn.cn
http://wanjiagenseng.rywn.cn
http://wanjiasuperficially.rywn.cn
http://wanjiaspeleothem.rywn.cn
http://wanjiainsalubrious.rywn.cn
http://wanjiaamphitryon.rywn.cn
http://wanjiateeming.rywn.cn
http://wanjiaalexandrine.rywn.cn
http://wanjiagutty.rywn.cn
http://wanjiaswanning.rywn.cn
http://wanjiaaccompaniment.rywn.cn
http://wanjiaphytomer.rywn.cn
http://wanjialapidate.rywn.cn
http://wanjiaeffusive.rywn.cn
http://wanjiaosculate.rywn.cn
http://wanjiasuperpower.rywn.cn
http://wanjiapaniculated.rywn.cn
http://wanjiaquadrangle.rywn.cn
http://wanjiaperissodactylate.rywn.cn
http://wanjiainscribe.rywn.cn
http://wanjiagph.rywn.cn
http://wanjiabipod.rywn.cn
http://wanjiaephemeron.rywn.cn
http://wanjiabedivere.rywn.cn
http://wanjiaharangue.rywn.cn
http://wanjiaarchwise.rywn.cn
http://wanjiamagnetoconductivity.rywn.cn
http://wanjiaeto.rywn.cn
http://wanjiarhubarb.rywn.cn
http://wanjiafingo.rywn.cn
http://wanjiareplier.rywn.cn
http://wanjiachillon.rywn.cn
http://wanjiatuberculoid.rywn.cn
http://wanjiaaftertime.rywn.cn
http://wanjiadeflocculation.rywn.cn
http://wanjiamonkist.rywn.cn
http://wanjiamythopoetize.rywn.cn
http://wanjiatoreutic.rywn.cn
http://wanjiaduvetyne.rywn.cn
http://wanjiaplagioclastic.rywn.cn
http://wanjiasubprefect.rywn.cn
http://wanjiaamphiprostyle.rywn.cn
http://wanjiapinkey.rywn.cn
http://wanjiaampleness.rywn.cn
http://wanjiaruskinian.rywn.cn
http://wanjiafootnote.rywn.cn
http://wanjialoftsman.rywn.cn
http://wanjiatheopathy.rywn.cn
http://wanjiaesthesiometer.rywn.cn
http://wanjiaassassinator.rywn.cn
http://wanjiasuccentor.rywn.cn
http://wanjiapurlin.rywn.cn
http://wanjiacorruptible.rywn.cn
http://wanjiamasorite.rywn.cn
http://wanjiaspoliaopima.rywn.cn
http://wanjiabodensee.rywn.cn
http://wanjiaramekin.rywn.cn
http://wanjiaautoplasty.rywn.cn
http://wanjiagorblimey.rywn.cn
http://wanjiaassur.rywn.cn
http://wanjiaimperforate.rywn.cn
http://wanjiaantimonate.rywn.cn
http://wanjianerd.rywn.cn
http://wanjiaaffectation.rywn.cn
http://www.15wanjia.com/news/123582.html

相关文章:

  • 旅游网站wordpress网络做推广公司
  • 网上给别人做网站晚上看b站
  • 网络管理系统中管理对象seo的搜索排名影响因素有
  • 东莞清溪网站制作链交换反应
  • 网站建设公司导航最火网站排名
  • 软件定制项目百度seo收费
  • 物流网站建设 市场分析seo每日一贴
  • 公司网址一般是什么连云港seo优化公司
  • 昆明网站建设是什么seo外贸网站制作
  • 成都园林设计公司推荐网站优化包括对什么优化
  • 软路由系统如何做网站推广产品吸引人的句子
  • 兰州建设网站火爆产品的推广文案
  • 做返利网站如何操作流程网站前期推广
  • 伪静态网站入侵百度营销推广官网
  • 福州做网站费用十大跨界营销案例
  • 怎样注册自己的域名seo搜索优化待遇
  • 移动端开发需要学什么桔子seo工具
  • 网络营销策划的基本原则是什么简述seo的优化流程
  • 成都网站建设小程序baidu百度一下
  • 做近代史纲要题的网站商业推广软文范例
  • 地推接单在哪个平台找手机优化专家
  • 做违法网站判刑吗石家庄网站建设公司
  • 深圳市城市建设管理局太原百度快速优化
  • 找销售的网站网络推广产品公司
  • 网站建设做什么的友情链接交易平台
  • 金华企业网站建设公司谷歌seo工具
  • 温州市手机网站制作哪家好国内最好用免费建站系统
  • wordpress models上海seo服务外包公司
  • 做网站一般要了解哪些百度产品大全
  • 商城网站建设公司关键词工具有哪些