感谢JDK8,让我们JAVA 程序员暂时不用担心失业.

有些情况,需要根据用户输入值,即时查询数据库,MYSQL显然不再适合这种业务.

mongoDB看似最适合,但是为了这么一个破功能,也不值得特意去搞一个

根据现有的redis,配合JDK8并行数据流,效果还不错

 <input autocomplete="off" data-provide="typeahead" class="form-control input-sm" name="itemCode" id="itemCode" placeholder="物品编码">
   function fillLocalData(typeaheadObj) {
        $(typeaheadObj).typeahead({
            source: function (query, process) {
                if (isBlank(query) && query.length < 3)
                    return;
                $.get("/searchByKeyWord/" + query, function (data) {
                    if (data.operateCode == "S") {
                        process(data.datas);
                    }
                });
            },
//            items: 8,//最多显示个数
            updater: function (item) {
                return item.split(":")[0];//这里一定要return,否则选中不显示,外加调用display的时候null reference错误。
            },
            displayText: function (item) {
                return item;//返回字符串
            },
            afterSelect: function (item) {
                //选择项之后的事件 ,item是当前选中的。
            },
            delay: 0//延迟时间
        });
    }

数据在程序启动的时候已经缓存到redis键是ITEM_MAP

    public Map<String,String> getCacheMap() {
        BoundHashOperations<String, String, String> hashOperations = redisTemplate.boundHashOps(ITEM_MAP);
        return hashOperations.entries();
    }

并行数据流在一定程度上弥补了redis查询的弱势

public String [] searchByKeyWord(String keyWord){
        Map<String,String> cacheMap = this.getCacheMap();
    return cacheMap.entrySet().stream().parallel().filter(entry->entry.getValue().indexOf(keyWord)!=-1).map(val->val.getKey()+":"+val.getValue()).limit(5).toArray(String [] ::new);
}

typeahead + JDK 8 并行流 + redis 高速即时查询.的更多相关文章

  1. Stream01 定义、迭代、操作、惰性求值、创建流、并行流、收集器、stream运行机制

    1 Stream Stream 是 Java 8 提供的一系列对可迭代元素处理的优化方案,使用 Stream 可以大大减少代码量,提高代码的可读性并且使代码更易并行. 2 迭代 2.1 需求 随机创建 ...

  2. Tomcat 应用中并行流带来的类加载问题

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/f-X3n9cvDyU5f5NYH6mhxQ作者:肖铭轩.王道环 随着 Java8 的不断流行, ...

  3. 流API--使用并行流

    这篇博客一起来研究下使用并行流.借组多核处理器并行执行代码可以显著提高性能,但是并行编程可能十分复杂且容易出错,流API提供的好处之一是能够轻松可靠的并行执行一些操作.请求并行处理流,首先要获得一个并 ...

  4. JDK8中的并行流

    1.IntStream.parallel():获取并行流处理 2. Collection中调用parallelStream()获取并行流 3.并行排序Arrays.parallelSort()

  5. Java8新特性 并行流与串行流 Fork Join

    并行流就是把一个内容分成多个数据块,并用不同的线程分 别处理每个数据块的流. Java 8 中将并行进行了优化,我们可以很容易的对数据进行并 行操作. Stream API 可以声明性地通过 para ...

  6. JAVA8给我带了什么——并行流和接口新功能

    流,确定是笔者内心很向往的天堂,有他之后JAVA在处理数据就变更加的灵动.加上lambda表达不喜欢都不行.JAVA8也为流在提供另一个功能——并行流.即是有并行流,那么是不是也有顺序流.没有错.我前 ...

  7. 在使用Java8并行流时的问题分析

    最近在使用Java8的并行流时遇到了坑,线上排查问题时花了较多时间,分享出来与大家一起学习与自查 // 此处为坑 List<Java8Demo> copy = Lists.newArray ...

  8. jdk8--stream并行流

    stream的并行流要理解一个框架如下: 单线程,多线程和并行流对比 package com.atguigu.java8; import java.util.concurrent.ForkJoinPo ...

  9. list.stream().parallel() 并行流

    https://blog.csdn.net/u011001723/article/details/52794455/  :  parallel()其实就是一个并行执行的流.它通过默认的ForkJoin ...

随机推荐

  1. Servlet--Servlet接口

    servlet主要数据结构 Servlet 接口:主要定义了servlet的生命周期方法 ServletConfig接口:为servlet提供了使用容器服务的若干重要对象和方法. ServletCon ...

  2. javabean内省

    何为JavaBean? JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共 ...

  3. Linux 修改环境变量报错

    报错如下: -bash: export: `=': not a valid identifier -bash: export: `/usr/local/sbin:/usr/local/bin:/sbi ...

  4. PHP实现QQ登录的开发教程

    第三方登录,就是使用大家比较熟悉的比如QQ.微信.微博等第三方软件登录自己的网站,这可以免去注册账号.快速留住用户的目的,免去了相对复杂的注册流程.下边就给大家讲一下怎么使用PHP开发QQ登录的功能. ...

  5. vmware虚拟机无法连接网络

    这是一个老生常谈的问题,而且网上有一套解决方法,最方便快捷的肯定属恢复虚拟网络了 说说我的情况 虚拟机VMware® Workstation 12 Pro centos6.8,克隆,192.168.2 ...

  6. Div+Css画太极图源代码

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>D ...

  7. Python selenium 一个节点两个关联input

    HTML代码: 一个节点两个关联input  多出现于密码框 先需要模拟点击进入第一个input,才能激活第二个input. 代码: driver.find_element_by_name('Text ...

  8. 【Java】泛型学习笔记

    参考书籍 <Java核心技术:卷1> 泛型, 先睹为快 先通过一个简单的例子说明下Java中泛型的用法: 泛型的基本形式类似于模板, 通过一个类型参数T, 你可以"私人定制&qu ...

  9. 什么是<!DOCTYPE html>

    什么是<!DOCTYPE html>? 在HTML文档初,往往会有这么一句话<!DOCTYPE html>,那么它的意义是什么呢?它是html5标准网页声明,全称为Docume ...

  10. [DeeplearningAI笔记]改善深层神经网络_优化算法2.1_2.2_mini-batch梯度下降法

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 mini-batch gradient descent mini-batch梯度下降法 我们将训练数据组合到一个大的矩阵中 \(X=\b ...