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

免费网站建设模版云盘网站排名优化软件哪家好

免费网站建设模版云盘,网站排名优化软件哪家好,阿里云免费服务器领取,如何搭建本地wordpress文章目录 配置 RedisTemplate验证blocking操作在独立连接上进行验证单tcp连接的多路复用 redis multiplexing机制类似http2#xff0c;在存在并发请求时能减少大量通讯延迟#xff0c;但不支持blocking相关的操作#xff0c;如BLPOP 配置 RedisTemplate RedisTemplate自动… 文章目录 配置 RedisTemplate验证blocking操作在独立连接上进行验证单tcp连接的多路复用 redis multiplexing机制类似http2在存在并发请求时能减少大量通讯延迟但不支持blocking相关的操作如BLPOP 配置 RedisTemplate RedisTemplate自动根据操作类型选择是在单连接上进行多路复用还是申请新的连接/等待空闲连接 Configuration public class RedisTemplateConfig {Beanpublic LettuceConnectionFactory lettuceConnectionFactory(Value(${redis.cluster}) String address,Value(${redis.password}) String password) {// 配置连接池管理var poolConfig new GenericObjectPoolConfigStatefulRedisClusterConnectionString, String();poolConfig.setMaxTotal(20);poolConfig.setMaxIdle(20);poolConfig.setMinIdle(2);poolConfig.setTestWhileIdle(true);poolConfig.setMinEvictableIdleDuration(Duration.ofMillis(60000));poolConfig.setTimeBetweenEvictionRuns(Duration.ofMillis(30000));poolConfig.setNumTestsPerEvictionRun(-1);// 配置客户端行为var clientConfig LettucePoolingClientConfiguration.builder().clientOptions(ClusterClientOptions.builder().autoReconnect(true).pingBeforeActivateConnection(true).socketOptions(SocketOptions.builder().connectTimeout(Duration.ofSeconds(3)).build()).timeoutOptions(TimeoutOptions.builder().fixedTimeout(Duration.ofSeconds(3)).build()).topologyRefreshOptions(ClusterTopologyRefreshOptions.builder().enableAdaptiveRefreshTrigger(RefreshTrigger.MOVED_REDIRECT,RefreshTrigger.PERSISTENT_RECONNECTS).adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)).build()).build()).poolConfig(poolConfig).build();// 配置集群连接信息var redisConfig new RedisClusterConfiguration();redisConfig.setMaxRedirects(5);redisConfig.setPassword(password);String[] serverArray address.split(,||;|);// 获取服务器数组SetRedisNode nodes new HashSet();for (String ipPort : serverArray) {nodes.add(RedisNode.fromString(ipPort));}redisConfig.setClusterNodes(nodes);return new LettuceConnectionFactory(redisConfig, clientConfig);}Beanpublic StringRedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {return new StringRedisTemplate(lettuceConnectionFactory);} }验证blocking操作在独立连接上进行 实现blocking LPOP操作的方法在opsForList()里 并发100压测期间查看客户端本地的tcp连接可以看到和每个redis节点都建立了大量连接 证明RedisTemplate没有选择让不同并发线程共用同一个StatefulConnection Testpublic void blpop() throws Exception {long start System.currentTimeMillis();AtomicLong err new AtomicLong();int maxThreads 100;Semaphore semaphore new Semaphore(maxThreads);for (int i 0; i maxThreads; i) {final int threadnum i 1;semaphore.acquire(1);new Thread(new Runnable() {Overridepublic void run() {try {template.opsForList().leftPop(test threadnum, 2, TimeUnit.SECONDS);} catch (Exception ex) {log.error(leftPop, ex);err.addAndGet(1L);} finally {semaphore.release(1);}}}).start();}semaphore.acquire(maxThreads);long end System.currentTimeMillis();log.info(耗时{}ms, 错误{}, end - start, err.get());}验证单tcp连接的多路复用 发起100个线程每个线程连续进行1000次读写操作 执行期间查看客户端本地的tcp连接可以看到只建立了一个和redis节点的连接 每个线程的指令并发地在同一个tcp连接上发出和响应一次请求响应实际相当于http2的一路stream Slf4j EnableAutoConfiguration(exclude { RedisAutoConfiguration.class }) SpringBootTest(classes { RedisTemplateConfig.class }) public class RedisTemplateTest {AutowiredStringRedisTemplate template;Testpublic void getSet() throws Exception {long start System.currentTimeMillis();int maxThreads 100;long maxMessagess 1000;AtomicLong err new AtomicLong();AtomicLong num new AtomicLong();Semaphore semaphore new Semaphore(maxThreads);for (int i 0; i maxThreads; i) {final int threadnum i 1;semaphore.acquire(1);new Thread(new Runnable() {Overridepublic void run() {int j 0;try {for (; j maxMessagess; j) {String key thread threadnum test j;String value test j;template.opsForValue().set(key, value, 1, TimeUnit.SECONDS);assertEquals(value, template.opsForValue().get(key));}} finally {num.addAndGet(j);semaphore.release(1);}}}).start();}semaphore.acquire(maxThreads);long end System.currentTimeMillis();double rate 1000d * num.get() / (end - start);log.info(每秒发送并读取消息{}; 耗时{}ms, 累计发送{}, rate, end - start, num.get());}RedisTemplate屏蔽了哪些并发命令可以共用连接的决策难点所以不要自行使用Lettuce客户端获取连接或从连接池申请连接。
http://www.pierceye.com/news/309229/

相关文章:

  • 做的好的学校网站简单公司网页设计
  • 宿迁网站建设公司排名电子政务门户网站建设项目招标采购
  • 建立校园网站广告设计与制作需要学什么专业
  • 汽车案例网站百度云网站备案流程
  • 生产建设兵团第三师政务网站搜索引擎有哪些种类
  • 制作网站公司图片山东省建设工程质量监督总站网站
  • 物流网站模板免费长沙推广型网站建设
  • 电商网站策划做网站知乎
  • 彩票网站开发是否合法网站开发中遇到的主要问题
  • 网站建设 人员 年终总结表白网站制作器
  • 怎么发布个人网站上海网站制作推广
  • 外国人做汉字网站网站访问量过大
  • 南昌做公司网站哪家好手机端网站自动弹出营销qq
  • 网站开发参考文献2015年后出售网站平台
  • 做外国网站买域名上海网站建设的英文
  • 好看的静态网站信产部网站备案
  • 怎样建设网站 需要哪些条件wordpress安装主题要多久
  • 高端网站设计平台高端网站设计企业印象笔记wordpress同步
  • 汽车网站建设的目的公司简介模板设计图片
  • 做外贸的社交网站怎么攻击网站吗
  • 网站布局手机百度网址大全
  • 企业网站做多大擦边球做网站挣钱
  • 网站怎么备份做网站建设要学多久
  • 怎样做买东西的网站外汇期货喊单网站怎么做的
  • 博客网站推荐郑州哪里做网站
  • 贵州建设职业技术学院网站网站开发 多语言
  • 网站后台管理系统怎么进重庆建设工程安全管理局网站
  • 移动网站开发的视频下载百度网盘下载官网
  • 在百度备案网站建设工程检测网
  • 广州企业网站营销电话公司网站怎么做啊