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

如何制作导航网站wordpress图片缩略图

如何制作导航网站,wordpress图片缩略图,企业建站1年,wordpress单栏主题Redis是一个著名的key-value存储系统#xff0c;也是nosql中的最常见的一种#xff0c;这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式#xff0c;文中给出了详细的示例代码供大家参考学习#xff0c;需要的朋友们下面来一起看看吧。前言Redis是一个著…Redis是一个著名的key-value存储系统也是nosql中的最常见的一种这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式文中给出了详细的示例代码供大家参考学习需要的朋友们下面来一起看看吧。前言Redis是一个著名的key-value存储系统也是nosql中的最常见的一种。其实个人认为redis最强大的地方不在于其存储而在于其强大的缓存作用。我们可以把它想象成一个巨大的(多借点集群聚合多借点的内存)的Map也就是Key-Value。所以我们可以把它做成缓存组件。官方推荐的Java版客户端是jedis非常强大和稳定支持事务、管道及有jedis自身实现。我们对redis数据的操作都可以通过jedis来完成。那我们就来看一看jedis不同的调用方式(1)普通同步方式public voidjedisNormal() {Jedis jedis new Jedis(localhost);long start System.currentTimeMillis();for (int i 0; i 100000; i) {String result jedis.set(n i, n i);}long end System.currentTimeMillis();System.out.println(Simple SET: ((end - start)/1000.0) seconds);jedis.disconnect();}//每次set之后都可以返回结果标记是否成功。(2)事务方式(Transactions)所谓事务即一个连续操作是否执行是一个事务要么完成要么失败没有中间状态。而redis的事务很简单他主要目的是保障一个client发起的事务中的命令可以连续的执行而中间不会插入其他client的命令也就是事务的连贯性。public voidjedisTrans() {Jedis jedis new Jedis(localhost);long start System.currentTimeMillis();Transaction txjedis.multi();for (int i 0; i 100000; i) {tx.set(t i, t i);}List results tx.exec();long end System.currentTimeMillis();System.out.println(Transaction SET: ((end - start)/1000.0) seconds);jedis.disconnect();}//我们调用jedis.watch(…)方法来监控key如果调用后key值发生变化则整个事务会执行失败。另外事务中某个操作失败并不会回滚其他操作。这一点需要注意。还有我们可以使用discard()方法来取消事务。(3)管道(Pipelining)管道是一种两个进程之间单向通信的机制。那再redis中为何要使用管道呢有时候我们需要采用异步的方式一次发送多个指令并且不同步等待其返回结果。这样可以取得非常好的执行效率。public voidjedisPipelined() {Jedis jedis new Jedis(localhost);Pipeline pipelinejedis.pipelined();long start System.currentTimeMillis();for (int i 0; i 100000; i) {pipeline.set(p i, p i);}List results pipeline.syncAndReturnAll();long end System.currentTimeMillis();System.out.println(Pipelined SET: ((end - start)/1000.0) seconds);jedis.disconnect();}(4)管道中调用事务对于事务以及管道这两个概念我们都清楚了。在某种需求下我们需要异步执行命令但是又希望多个命令是有连续的所以我们就采用管道加事务的调用方式。jedis是支持在管道中调用事务的。public voidjedisCombPipelineTrans() {jedis new Jedis(localhost);long start System.currentTimeMillis();Pipeline pipelinejedis.pipelined();pipeline.multi();for (int i 0; i 100000; i) {pipeline.set( i, i);}pipeline.exec();List results pipeline.syncAndReturnAll();long end System.currentTimeMillis();System.out.println(Pipelined transaction: ((end - start)/1000.0) seconds);jedis.disconnect();}//效率上可能会有所欠缺(5)分布式直连同步调用这个是分布式直接连接并且是同步调用每步执行都返回执行结果。类似地还有异步管道调用。其实就是分片。public voidjedisShardNormal() {List shards Arrays.asList(new JedisShardInfo(localhost,6379),new JedisShardInfo(localhost,6380));ShardedJedis sharding newShardedJedis(shards);long start System.currentTimeMillis();for (int i 0; i 100000; i) {String result sharding.set(sn i, n i);}long end System.currentTimeMillis();System.out.println(SimpleSharing SET: ((end - start)/1000.0) seconds);sharding.disconnect();}(6)分布式直连异步调用public voidjedisShardpipelined() {List shards Arrays.asList(new JedisShardInfo(localhost,6379),new JedisShardInfo(localhost,6380));ShardedJedis sharding newShardedJedis(shards);ShardedJedisPipeline pipelinesharding.pipelined();long start System.currentTimeMillis();for (int i 0; i 100000; i) {pipeline.set(sp i, p i);}List results pipeline.syncAndReturnAll();long end System.currentTimeMillis();System.out.println(PipelinedSharing SET: ((end - start)/1000.0) seconds);sharding.disconnect();}(7)分布式连接池同步调用如果你的分布式调用代码是运行在线程中那么上面两个直连调用方式就不合适了因为直连方式是非线程安全的这个时候你就必须选择连接池调用。连接池的调用方式适合大规模的redis集群并且多客户端的操作。public voidjedisShardSimplePool() {List shards Arrays.asList(new JedisShardInfo(localhost,6379),new JedisShardInfo(localhost,6380));ShardedJedisPool pool new ShardedJedisPool(newJedisPoolConfig(), shards);ShardedJedis onepool.getResource();long start System.currentTimeMillis();for (int i 0; i 100000; i) {String result one.set(spn i, n i);}long end System.currentTimeMillis();pool.returnResource(one);System.out.println(SimplePool SET: ((end - start)/1000.0) seconds);pool.destroy();}(8)分布式连接池异步调用public voidjedisShardPipelinedPool() {List shards Arrays.asList(new JedisShardInfo(localhost,6379),new JedisShardInfo(localhost,6380));ShardedJedisPool pool new ShardedJedisPool(newJedisPoolConfig(), shards);ShardedJedis onepool.getResource();ShardedJedisPipeline pipelineone.pipelined();long start System.currentTimeMillis();for (int i 0; i 100000; i) {pipeline.set(sppn i, n i);}List results pipeline.syncAndReturnAll();long end System.currentTimeMillis();pool.returnResource(one);System.out.println(PipelinedPool SET: ((end - start)/1000.0) seconds);pool.destroy();}9)需要注意的地方事务和管道都是异步模式。在事务和管道中不能同步查询结果。比如下面两个调用都是不允许的Transaction tx jedis.multi();for (int i 0; i 100000; i) {tx.set(t i, t i);}System.out.println(tx.get(t1000).get()); //不允许List results tx.exec();……Pipeline pipelinejedis.pipelined();long start System.currentTimeMillis();for (int i 0; i 100000; i) {pipeline.set(p i, p i);}System.out.println(pipeline.get(p1000).get()); //不允许List results pipeline.syncAndReturnAll();事务和管道都是异步的个人感觉在管道中再进行事务调用没有必要不如直接进行事务模式。分布式中连接池的性能比直连的性能略好(见后续测试部分)。分布式调用中不支持事务。因为事务是在服务器端实现而在分布式中每批次的调用对象都可能访问不同的机器所以没法进行事务。(10)总结分布式中连接池方式调用不但线程安全外根据上面的测试数据也可以看出连接池比直连的效率更好。经测试分布式中用到的机器越多调用会越慢。
http://www.zqtcl.cn/news/874116/

相关文章:

  • wordpress网站 搬家大型网站开发什么书籍好
  • 机关事业单位 网站建设方案书网站推送怎么做
  • php网站如何绑定一级域名到子目录做推广便宜的网站
  • 江苏省网站建设与管理历年自考试题商城网站 价格
  • 淘宝客网站建站源码icp备案查询官网入口
  • 环球资源网站网址微信管理中心
  • 青岛seo建站企业网址下载
  • 开发网站多少钱一个月做网站宽度
  • wordpress企业站主题哪个好做床上用品网站
  • 宜兴市做网站网站建设简讯
  • 点的排版设计网站音乐网站网页设计
  • 牛商网做网站的思路建设网站的机构
  • flash网站制作实例自适应网站做百度推广
  • 深圳建立网站电影里的做视频在线观看网站
  • 国家建设标准发布网站在哪里在线教育网站怎样建设
  • 徐州 商城网站设计winserver wordpress
  • 做网络课程的网站一般网站的架构
  • 网站建设包含哪些内容句容住房和城乡建设局网站
  • 做网站是做完给钱还是新房装修图片
  • 阿里云建站视频wordpress显示摘要插件
  • 济宁网站建设 企业谷网站开发有什么用
  • 网站建设一般多少钱官网代做网站公司哪家好
  • 页面简洁的网站深圳广告宣传片拍摄
  • 做外卖网站青岛助创网络科技有限公司
  • 怎么选择优秀的网站建设公司建设银行宁波分行 招聘网站
  • 工艺品网站模板下载-古色古香建站软件排名
  • 微视频网站源码网站建设目标个人博客dw
  • 山西省建设厅入晋备案网站洛阳网站在哪备案
  • 可以做物理试验的网站有哪些仿微博网站模板
  • 网站横幅怎做网站到期不想续费