SpringMvc 4.3 整合redis

来源:互联网 发布:dota2视频软件 编辑:程序博客网 时间:2024/05/29 19:07

本篇仅限自己备忘,因框架配置不尽相同,其他人仅供参考!

主要修改以下文件:
pom.xml
redis.properties
springMvc-base.xml


pom.xml

添加redis依赖

 <dependency>      <groupId>redis.clients</groupId>      <artifactId>jedis</artifactId>      <version>2.1.0</version>    </dependency>

redis.properties

# Redis settingsredis.host=192.168.5.99redis.pass=redis.port      =6379    redis.maxIdle       =300  redis.default.db    =0  redis.timeout       =100000  redis.maxActive     =600  redis.maxWait       =1000  redis.testOnBorrow  =true  

timeout 默认是6000 即6秒,我改成了100秒,因为我写了个测试,20个线程,每个线程负责存储30万条hash,结果每次到200多万就会报与redis链接超时,所以我就改大了。实际测试600万数据插入耗时4分半,后来无论怎么增加线程数量,都不会再有效率提升,在linux测试更快一些。我猜想是受限于windows 下cpu的性能。

springMvc-base.xml

因为需要即支持物理数据库,又要支持内存数据库,所以需要变更以下配置

 <bean id="propertyConfigurer"          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">          <property name="location" value="classpath:Jdbc/jdbc.properties" />      </bean> 变更为: <bean id="propertyConfigurer"        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <!--<property name="location" value="classpath:Jdbc/jdbc.properties" />-->        <property name="locations">            <list>                <value>classpath:Jdbc/jdbc.properties</value>                <value>classpath:redis/redis.properties</value>            </list>        </property>    </bean>

增加如下配置:

<!-- redis缓存数据库的相关配置 -->    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">        <property name="maxIdle" value="${redis.maxIdle}" />        <property name="maxActive" value="${redis.maxActive}" />        <property name="maxWait" value="${redis.maxWait}" />        <property name="testOnBorrow" value="${redis.testOnBorrow}" />    </bean>    <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"          p:host-name="${redis.host}"          p:port="${redis.port}"          p:password="${redis.pass}"          p:pool-config-ref="poolConfig"          p:timeout="${redis.timeout}"    />    <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">        <property name="connectionFactory" ref="connectionFactory" />    </bean>    <bean id="LoginRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">        <property name="connectionFactory" ref="connectionFactory" />    </bean>

测试:

controller

    /**     * 保存用户     * @param -name     * @param- sex     * @param -age     * @return     */    @RequestMapping("/save")    @ResponseBody    public Integer save(@RequestParam(value="userName", defaultValue="") String userName,                        @RequestParam(value="password", defaultValue="") String password){        System.err.println("name: ----------"+userName );        service.saveUser(userName, password);        return 1;    }

service (我的框架里面没有dao,懒的写。项目小,没啥用。技术就这么烂,唉没办法)

@Resource    protected RedisTemplate<String, Object> redisTemplate;    @Override    public void saveUser(String userName, String pwd) {        for (int i = 0; i <20 ; i++) {            new Thread(new Runnable() {                @Override                public void run() {                    Long a =System.currentTimeMillis();                    System.out.println("start===="+(a)/1000);                    for (int i = 0; i <300000 ; i++) {                        String uuid = UUID.randomUUID().toString().replace("-","");                        redisTemplate.opsForValue().set(uuid,"liushuai");                    }                    System.out.println("end===="+(System.currentTimeMillis()-a)/1000);                }            }).start();        }        Map<String,String> maps = new HashMap<String, String>();        maps.put("multi1","multi1");        maps.put("multi2","multi2");        maps.put("multi3","multi3");        redisTemplate.opsForValue().multiSet(maps);        List<String> keys = new ArrayList<String>();        keys.add("multi1");        keys.add("multi2");        keys.add("multi3");        System.out.println(redisTemplate.opsForValue().multiGet(keys));    }

以上就是集成过程了

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 君子兰根全没了怎么生根 菩提根的种类全解图 九根香看香火全图 密歇根大学全美排名 抽搐一进一出全根进入 根力多80斤复合肥价格 根力多生物科技有限公司 根力多生物科技股份有限公司 变态根 二次根号 根号72 tan根号3 根号3等于 根号二等于 2倍根号2等于多少 根号2等于多少怎么算 3倍根号2等于多少 1比1比根号2 2倍根号3等于多少 根号下2等于多少 根号2x的导数 2倍根号3 根号2怎么算出来的 根号2是有理数吗 根号2加根号2等于多少 根号2乘以根号3 负根号2的平方等于多少 2分之根号3等于多少 根号2约等于 2分之根号2 根号3是多少 根号3等于多少怎么算 根号3的平方等于多少 根号3的平方 根号3乘以根号3等于多少 根号3加根号3等于多少 根号8的3次方等于多少 根号下3等于多少 2根号3 在数轴上表示根号3 根号15