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

站长工具永久国家中小企业公共服务平台

站长工具永久,国家中小企业公共服务平台,公众号运营外包价格,百度推广多少钱一天文章目录 第1关#xff1a;Redis 事务与锁机制第2关#xff1a;流水线第3关#xff1a;发布订阅第4关#xff1a;超时命令第5关#xff1a;使用Lua语言 第1关#xff1a;Redis 事务与锁机制 编程要求 根据提示#xff0c;在右侧编辑器Begin-End补充代码#xff0c;根据… 文章目录 第1关Redis 事务与锁机制第2关流水线第3关发布订阅第4关超时命令第5关使用Lua语言 第1关Redis 事务与锁机制 编程要求 根据提示在右侧编辑器Begin-End补充代码根据以下要求完成一个模拟一次银行卡支付扣款的流程 1、当余额不足时放弃所有被监控的键返回false。 2、在余额扣除消费的金额在支付金额里加上消费的金额。 测试说明 我会对你编写的代码进行测试 测试输入无 预期输出 支付成功 本次扣款10元余额为90元 开始你的任务吧祝你成功 示例代码如下 package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction; import java.util.List; public class TestRedis {private static String host 127.0.0.1;private static int port 6379;private static Jedis jedis new Jedis(host, port);public static boolean payMent(int deduction) throws InterruptedException {int balance; // 余额//设置余额金额jedis.set(balance, 100);jedis.set(deduction, 0);//监控扣款和余额jedis.watch(balance, deduction);/***********Begin***********/balance Integer.parseInt(jedis.get(balance));// 余额不足if (balance deduction) {jedis.unwatch(); // 放弃所有被监控的键System.out.println(对不起你的余额不足);return false;}Transaction transaction jedis.multi();// 扣钱transaction.decrBy(balance, deduction);Thread.sleep(5000); // 在外部修改 balance 或者 debttransaction.incrBy(deduction, deduction);// list为空说明事务执行失败ListObject list transaction.exec();return !list.isEmpty();/***********End***********/}public static void main(String[] args) throws InterruptedException {boolean resultValue payMent(10);if (resultValuetrue){System.out.println(支付成功);int balance Integer.parseInt(jedis.get(balance));int deduction Integer.parseInt(jedis.get(deduction));System.out.printf(本次扣款deduction元余额为balance元);}else{System.out.println(支付失败);}jedis.close();} }第2关流水线 编程要求 根据提示在右侧编辑器Begin-End补充代码按照以下要求开启一次流水线技术 开启流水线。 测试十万条读写操作,设置 key 值为 key0 、 key1 、 key2 …key99998、key99999对应 value 值为 value0 、value1、value2…value99998、value99999。 结束流水线。 测试说明 我会对你编写的代码进行测试 测试输入无 预期输出 开启流水线 消耗时间XXX毫秒 关闭流水线 流水线成功完成 开始你的任务吧祝你成功 示例代码如下 package com.test; import redis.clients.jedis.*; import java.util.List; public class RedisPipeline {public boolean pipeline() {String redisHost 127.0.0.1;int redisPort 6379;Jedis jedis new Jedis(redisHost, redisPort);jedis.flushDB();/**********Begin**********/long start System.currentTimeMillis();// 开启流水线Pipeline pipeline jedis.pipelined();System.out.println(开启流水线);// 测试十万条读写操作for (int i 0; i 100000; i) {pipeline.set(keyi,valuei);pipeline.get(keyi);}long end System.currentTimeMillis();//关闭流水线pipeline.close();System.out.println(消耗时间(end-start)毫秒);System.out.println(关闭流水线);/**********End**********/return true;} }第3关发布订阅 编程要求 根据提示在右侧编辑器Begin-End补充代码按照以下要求 在SubThread类中订阅指定频道redis。 测试说明 我会对你编写的代码进行测试 测试输入quit 预期输出 订阅redis, 订阅频道为 redis, 线程将被阻塞 订阅redis频道成功, 频道为 redis, 订阅频道为 1 请输入传输的信息 关闭程序 开始你的任务吧祝你成功 示例代码如下 package com.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class SubThread extends Thread {private final JedisPool jedisPool;private final Subscriber subscriber new Subscriber();private final String channel redis;public SubThread(JedisPool jedisPool) {super(SubThread);this.jedisPool jedisPool;}Overridepublic void run() {System.out.println(String.format(订阅redis, 订阅频道为 %s, 线程将被阻塞, channel));Jedis jedis null;try {/************* Begin ***************/jedis jedisPool.getResource();jedis.subscribe(subscriber, channel);/************* End ***************/} catch (Exception e) {System.out.println(String.format(订阅频道错误, %s, e));} finally {if (jedis ! null) {jedis.close();}}} }第4关超时命令 编程要求 根据提示在右侧编辑器Begin-End补充代码按照以下要求使用 Spring 操作 Redis 超时命令过程 创建键值对key 值为“今天你吃了吗” 获取 key 值 设置 key 的过期时间为 5 秒 测试说明 我会对你编写的代码进行测试 测试输入无 预期输出 今天你吃了吗 null 开始你的任务吧祝你成功 示例代码如下 package com.redis; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.redis.core.RedisOperations; import org.springframework.data.redis.core.RedisTemplate; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.concurrent.TimeUnit; public class OverTimeRedisTest {SuppressWarnings({ unchecked, rawtypes, resource })public static void main(String[] args) {ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);RedisTemplate redisTemplateapplicationContext.getBean(RedisTemplate.class);redisTemplate.execute((RedisOperations ops) - {/************Begin************/ops.boundValueOps(key).set(今天你吃了吗);System.out.println(ops.boundValueOps(key).get());ops.expire(key,5L, TimeUnit.SECONDS);/************End************///睡眠6秒使得key值过期try {Thread.sleep(6000);}catch (InterruptedException e){e.printStackTrace();}//获取key值System.out.println(ops.boundValueOps(key).get());//结束所有线程退出系统System.exit(0);return null;});} }第5关使用Lua语言 编程要求 根据提示在右侧编辑器 Begin - End 处补充代码根据以下要求完成一次手机销售库存的操作 编写 ItemRedisTest.lua 文件判断销售量是否比库存数量多如果库存数量大于这次销售量将新的库存数量更新到原来的 key 值上。 编写 ItemRedisTest.java 文件使用 BufferedReader 读取ItemRedisTest.lua 文件使用 eval 命令执行文件里的字符串设置手机销售量为10。 ItemRedisTest.lua 地址为/data/workspace/myshixun/step5/ItemRedisTest.lua 测试说明 我会对你编写的代码进行测试 测试输入无 预期输出 手机库存剩余90 开始你的任务吧祝你成功 代码示例如下 package com.redis; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.redis.core.RedisTemplate; import redis.clients.jedis.Jedis; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class ItemRedisTest {public static void main(String[] args) throws IOException {ApplicationContext applicationContextnew ClassPathXmlApplicationContext(applicationContext.xml);RedisTemplate redisTemplateapplicationContext.getBean(RedisTemplate.class);Jedis jedis(Jedis)redisTemplate.getConnectionFactory().getConnection().getNativeConnection();jedis.set(phone_item_stock, 100);/************Begin************/BufferedReader in new BufferedReader(new FileReader(/data/workspace/myshixun/step5/ItemRedisTest.lua));String context null;String script;while (null ! (context in.readLine())){scriptcontext\n;}Object obj jedis.eval(script, 1,phone_item_stock,10);/************End************/System.out.println(手机库存剩余obj);//关闭连接jedis.close();System.exit(0);} }之后在命令行中输入下列代码 vim /data/workspace/myshixun/step5/ItemRedisTest.lua编辑该文件内容 local count redis.call(get, KEYS[1]) local atonumber(count) local btonumber(ARGV[1]) ---Begin if ab thenredis.call(set,KEYS[1],count-b)return redis.call(get, KEYS[1]) end ---End
http://www.yutouwan.com/news/93932/

相关文章:

  • 长春专业网站建设模板注册自己的品牌需要多少钱
  • 网站后台怎么上传网页模板百度文库小程序入口
  • 口碑好的定制网站建设提供商云星穹铁道网页版入口
  • 沙漠网站建设网站建设代码怎么写
  • 有没有做外贸的网站啊如何编写html网页
  • 温州建设小学网站wordpress 列表分页
  • 临海城市建设网站制作人在线完整免费观看韩剧网
  • 青岛网站推广招商建设部网站证件查询
  • 旅行网站建设的规划书公司注册地址异常
  • 打开有些网站显示建设中邯郸oa办公系统
  • 郑州网站建设培训软件开发的软件有哪些
  • 设计网站要多少钱连云港高端网站建设
  • 哪些网站的做的好看的图片建设网站的收费
  • 重庆哪里可以做公司网站微商城怎么注册怎么弄
  • 邯郸网站设计制作织梦网站新闻列表调用
  • 下沙建设局网站迅美网站建设
  • 泉州设计网站学生免费建设网站
  • 外国电商设计网站有哪些做网站应该学什么
  • wordpress设置网站背景图片企业网站的内容营销
  • 网站建设与维护 东博墨客网站建设xcyxqc
  • 靖江网站建设公司某网站网站的设计与实现
  • 女装商城网站建设株洲做网站定制
  • 东昌府聊城网站优化注册深圳公司代理
  • 如何用织梦搭建网站成都餐饮vi设计公司
  • 网站制作南宁100种班服设计图
  • 网站采集信息怎么做常州企业做网站
  • 企业网站 jquery网络服务器可提供的常见服务有什么
  • 山西网站建设 哪家好关键词排名优化易下拉霸屏
  • 电子商务网站建设的发展趋势网站代码调试
  • 网站开发费用如何记账微信的网址链接