北京快三大小计划:Spring集成jedis的配置与使用简单实例

北京快三走势图 www.mxld9.cn  更新时间:2019年03月12日 14:16:22   作者:8blues   我要评论

今天小编就为大家分享一篇关于Spring集成jedis的配置与使用简单实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

jedis是redis的java客户端,spring将redis连接池作为一个bean配置。

redis连接池分为两种,一种是“redis.clients.jedis.ShardedJedisPool”,这是基于hash算法的一种分布式集群redis客户端连接池。

另一种是“redis.clients.jedis.JedisPool”,这是单机环境适用的redis连接池。

maven导入相关包:

  <!-- redis依赖包 -->
  <dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
   <version>2.9.0</version>
  </dependency>

ShardedJedisPool是redis集群客户端的对象池,可以通过他来操作ShardedJedis,下面是ShardedJedisPool的xml配置,spring-jedis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="//www.springframework.org/schema/beans"
    xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
    xmlns:context="//www.springframework.org/schema/context"
    xsi:schemaLocation="//www.springframework.org/schema/beans
    //www.springframework.org/schema/beans/spring-beans.xsd
    //www.springframework.org/schema/context //www.springframework.org/schema/context/spring-context.xsd">
  <!-- 引入jedis的properties配置文件 -->
  <!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"-->
  <context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" />
  <!--shardedJedisPool的相关配置-->
  <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <!--新版是maxTotal,旧版是maxActive-->
    <property name="maxTotal">
      <value>${redis.pool.maxActive}</value>
    </property>
    <property name="maxIdle">
      <value>${redis.pool.maxIdle}</value>
    </property>
    <property name="testOnBorrow" value="true"/>
    <property name="testOnReturn" value="true"/>
  </bean>
  <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton">
    <constructor-arg index="0" ref="jedisPoolConfig" />
    <constructor-arg index="1">
      <list>
        <bean class="redis.clients.jedis.JedisShardInfo">
          <constructor-arg name="host" value="${redis.uri}" />
        </bean>
      </list>
    </constructor-arg>
  </bean>
</beans>

下面是单机环境下redis连接池的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="//www.springframework.org/schema/beans"
    xmlns:xsi="//www.w3.org/2001/XMLSchema-instance"
    xmlns:context="//www.springframework.org/schema/context"
    xsi:schemaLocation="//www.springframework.org/schema/beans
    //www.springframework.org/schema/beans/spring-beans.xsd
    //www.springframework.org/schema/context //www.springframework.org/schema/context/spring-context.xsd">
  <!-- 引入jedis的properties配置文件 -->
  <!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"-->
  <context:property-placeholder location="classpath:properties/redis.properties" ignore-unresolvable="true" />
  <!--Jedis连接池的相关配置-->
  <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <!--新版是maxTotal,旧版是maxActive-->
    <property name="maxTotal">
      <value>${redis.pool.maxActive}</value>
    </property>
    <property name="maxIdle">
      <value>${redis.pool.maxIdle}</value>
    </property>
    <property name="testOnBorrow" value="true"/>
    <property name="testOnReturn" value="true"/>
  </bean>
  <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
    <constructor-arg name="poolConfig" ref="jedisPoolConfig" />
    <constructor-arg name="host" value="${redis.host}" />
    <constructor-arg name="port" value="${redis.port}" type="int" />
    <constructor-arg name="timeout" value="${redis.timeout}" type="int" />
    <constructor-arg name="password" value="${redis.password}" />
    <constructor-arg name="database" value="${redis.database}" type="int" />
  </bean>
</beans>

对应的classpath:properties/redis.properties.xml为:

#最大分配的对象数
redis.pool.maxActive=200
#最大能够保持idel状态的对象数
redis.pool.maxIdle=50
redis.pool.minIdle=10
redis.pool.maxWaitMillis=20000
#当池内没有返回对象时,最大等待时间
redis.pool.maxWait=300
#格式:redis://:[密码]@[服务器地址]:[端口]/[db index]
redis.uri = redis://:[email protected]:6379/0
redis.host = 127.0.0.1
redis.port = 6379
redis.timeout=30000
redis.password = 12345
redis.database = 0

二者操作代码类似,都是先注入连接池,然后通过连接池获得jedis实例,通过实例对象操作redis。

ShardedJedis操作:

  @Autowired
  private ShardedJedisPool shardedJedisPool;//注入ShardedJedisPool
  @RequestMapping(value = "/demo_set",method = RequestMethod.GET)
  @ResponseBody
  public String demo_set(){
    //获取ShardedJedis对象
    ShardedJedis shardJedis = shardedJedisPool.getResource();
    //存入键值对
    shardJedis.set("key1","hello jedis");
    //回收ShardedJedis实例
    shardJedis.close();
    return "set";
  }
  @RequestMapping(value = "/demo_get",method = RequestMethod.GET)
  @ResponseBody
  public String demo_get(){
    ShardedJedis shardedJedis = shardedJedisPool.getResource();
    //根据键值获得数据
    String result = shardedJedis.get("key1");
    shardedJedis.close();
    return result;
  }

Jedis操作:

  @Autowired
  private JedisPool jedisPool;//注入JedisPool
  @RequestMapping(value = "/demo_set",method = RequestMethod.GET)
  @ResponseBody
  public String demo_set(){
    //获取ShardedJedis对象
    Jedis jedis = jedisPool.getResource();
    //存入键值对
    jedis.set("key2","hello jedis one");
    //回收ShardedJedis实例
    jedis.close();
    return "set";
  }
  @RequestMapping(value = "/demo_get",method = RequestMethod.GET)
  @ResponseBody
  public String demo_get(){
    Jedis jedis = jedisPool.getResource();
    //根据键值获得数据
    String result = jedis.get("key2");
    jedis.close();
    return result;
  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • java中Filter过滤器处理中文乱码的方法

    java中Filter过滤器处理中文乱码的方法

    java中Filter过滤器处理中文乱码的方法,需要的朋友可以参考一下
    2013-05-05
  • java回调机制实例详解

    java回调机制实例详解

    这篇文章主要介绍了java回调机制实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java Socket编程详解及示例代码

    Java Socket编程详解及示例代码

    本文主要讲解Java Socket编程,这里整理了详细的技术资料及简单的示例代码帮助大家学习参考,有需要的小伙伴可以参考下本文内容
    2016-09-09
  • java定时器timer的使用方法代码示例

    java定时器timer的使用方法代码示例

    这篇文章主要介绍了java定时器timer的使用方法代码示例,向大家分享了两部分代码,详细内容请参见正文,还是比较不错的,需要的朋友可以参考下。
    2017-11-11
  • 优雅地在Java 8中处理异常的方法详解

    优雅地在Java 8中处理异常的方法详解

    异常处理是我们在日??⒅芯;嵊龅降囊恢中枨?,下面这篇文章主要给大家介绍了关于如何优雅地在Java 8中处理异常的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们来一起看看吧
    2019-01-01
  • Java关键字volatile和synchronized作用和区别

    Java关键字volatile和synchronized作用和区别

    这篇文章主要为大家详细介绍了Java关键字volatile和synchronized的作用和区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • java数组基础详解

    java数组基础详解

    这篇文章主要介绍了Java数组基础详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java实现区域内屏幕截图示例

    java实现区域内屏幕截图示例

    这篇文章主要介绍了java截图示例,需要的朋友可以参考下
    2014-04-04
  • Java实现帧动画的实例代码

    Java实现帧动画的实例代码

    这篇文章主要介绍了Java实现帧动画的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 基于java编写局域网多人聊天室

    基于java编写局域网多人聊天室

    这篇文章主要介绍了基于java编写局域网多人聊天室的相关资料,使用socket基于java编写一个局域网聊天室,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论

  • 不限量套餐猫腻多 工信部出手后三大运营商齐整改 2019-03-22
  • 150秒!速览习主席青岛峰会精彩瞬间 2019-03-21
  • 只有黑社会才会拉帮结派, 2019-03-21
  • 喜过端午:纽约华侨华人包粽子诵《离骚》赛龙舟 2019-03-20
  • 工程与时间赛跑 质量与进度齐抓 2019-03-19
  • 长城新媒体集团基本情况简介 2019-03-18
  • 重资“血拼”当心酿成内伤 2019-03-18
  • “超级连接”助力博物馆新发展(1) 2019-03-17
  • 【理上网来·喜迎十九大】扶贫也创新!十八大以来年均减贫人数超1300万 获历史突破 2019-03-17
  • 王子文再登封面 黑白光影间酷女孩玩转高级时尚 2019-03-16
  • 不忘初心继续前进——七集政论专题片 2019-03-15
  • 推动形成全面开放新格局 开启新时代开放新征程 2019-03-15
  • 听听 海底的“动静” 2019-03-14
  • 黄嘉刚:《费墨车话》 2019-03-13
  • 畅想——未来的人民日报 2019-03-12
  • 143| 358| 258| 71| 831| 140| 608| 646| 117| 957|