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

怎么样做电影网站局域网组网方案

怎么样做电影网站,局域网组网方案,可以做h5的软件,wordpress 搭建可视化一、Redis基本的事务操作 首先声明: redis的单条命令是保证原子性的(回想一下setnx k1 v1 k5 v5命令如果k1已经存在,那么k5也会设置失败)但是redis的事务不保证原子性!见下面“1.2 某条命令有错怎么办?”…

一、Redis基本的事务操作

首先声明:

  • redis的单条命令是保证原子性的(回想一下setnx k1 v1 k5 v5命令如果k1已经存在,那么k5也会设置失败)
  • 但是redis的事务不保证原子性!见下面“1.2 某条命令有错怎么办?”
  • redis的事务也没有隔离性!mysql的事务必须具有隔离性是因为可能有多个线程操作数据,但是redis是单线程的,所以根本不需要隔离。相应的,redis也就没有脏读、幻读等一系列由隔离性引发的问题。

1.1 开始事务、执行事务、放弃事务

 注意:每次exec执行完事务后,这个事务就消失了。下次要再输入multi命令去创建新事务

discard命令放弃事务

 1.2 事务中某条命令有错怎么办?

  • 编译型异常”,也就是事务中某条命令语法有错,比如把“hget”写成了"ghet",那么整个事务中的所有命令都不会被执行,这里是具有原子性特点的
  • 运行时异常”,语法没错,但是命令执行出现问题。比如事务中某条命令是“geodist china:city beijing tianjin”,但是china:city这个集合中压根没有天津这个城市。那么这一条命令执行失败,但是其他命令会执行成功。所以redis的事务不具有原子性

注意看下面的演示

 

二、通过redisTemplate操作再次理解事务

    @Testpublic void test01(){// 1.从数据库中取出数据,转为java对象Blog blog1 = blogMapper.selectById(2);Blog blog2 = blogMapper.selectById(3);// 2.java对象-->jsonString blogString1 = JSON.toJSONString(blog1);String blogString2 = JSON.toJSONString(blog2);redisTemplate.multi();try{redisTemplate.opsForValue().set("blog1",blogString1);redisTemplate.opsForValue().set("blog2",blogString2);int i=1/0;  //运行时异常,但是上面两条命令会执行成功redisTemplate.exec();}catch (Exception e){e.printStackTrace();}finally {System.out.println(redisTemplate.opsForValue().get("blog1"));System.out.println(redisTemplate.opsForValue().get("blog2"));}}

三、Redis用watch实现乐观锁

mysql用version版本号实现乐观锁,我们的redis用watch监控实现乐观锁。

 先看一下加watch监控后,事务成功的情况下:

cj:11>set money 1000
"OK"
cj:11>watch money  # 给money开启监控,记录money当前的值
"OK"
cj:11>multi
"OK"
cj:11>incrby money 100
"QUEUED"
cj:11>incrby money 200
"QUEUED"
cj:11>exec   # 事务执行前money没有被别的线程修改过(money值没变),那么事务执行成功!
1) "OK"
2) "1100"
3) "OK"
4) "1300"
5) "OK"

再看一下,事务执行前,命令里的值被其他线程修改的情况(入门篇里说过,redis的单线程指的是给一个用户网络连接请求开启一个单线程,这个单线程不会开子线程。但是当多个网络请求的时候,自然是多个线程在同时进行,当然这不属于redis级别的多线程,而是java程序级别的多线程)

 这个事务就会失败

 失败后再怎么弄勒?毕竟我们还是要花500块钱的。当然是再来一遍了!但是要先解除监控,再加上监控

cj:11>unwatch  # 解除监控
"OK"
cj:11>watch money  # 再次加上监控,获取money最新的值
"OK"
cj:11>multi
"OK"
cj:11>decrby money 500
"QUEUED"
cj:11>exec
1) "OK"
2) "2500"
3) "OK"

http://www.yayakq.cn/news/923303/

相关文章:

  • 电子商务网站建设与管理课设中国公路建设招标网站
  • 网站估值怎么做网站制作多少钱资讯
  • 杭州网站建设索q.479185700百度权重是怎么来的
  • 网站规划与网站建设网站建设有哪种方式
  • p2p网站建设时间上海电子门户网站建设数据
  • 圣矢网络重庆网站建设优化推广公司c 写网站建设框架
  • 网上服装定制网站wordpress特效 插件推荐
  • 郑州做网站哪家专业网站如何做品牌宣传
  • 网站建设云南才力电子商务网站建设的参考文献
  • 做快消品的网站网页怎么认证
  • 黄南北京网站建设合肥seo快排扣费
  • 公司网站打不开是什么原因无极电影网怒火重案
  • 青岛建设集团招工信息网站鹤岗建设局网站
  • 向google提交网站企业建设电子商务网站的目的
  • 专业制作网站哪家好天津免费网站建站模板
  • 邵阳整站优化维护公司网站建设
  • 怎么用支付宝做发卡网站国外什么网站是做外贸
  • 家庭网站建设上海频道网站建设
  • wordpress怎么开启多站点外贸网站怎么注册
  • wordpress显示文章列表qq关键词排名优化
  • 自建网站访问报错有关做详情页的参考网站
  • aaa云主机怎么做网站建设银行网站怎么交学费
  • 网站 开发 合同宁津网站设计
  • 网站设计与网站建设课程代码网站流量如何提高
  • 成都建设局官方网站做游戏模板下载网站
  • 余姚网站如何进行优化那个网站做淘宝推广比较好
  • 广州哪里有网站建设搜索引擎网站的搜素结果有何区别
  • 开发app应用公司排名深圳企业网站seo
  • 做网站的目标是什么免费海报图片大全
  • 长白山网站学做管理平台广州互联网项目工作室